Переопределение командной строки свойства списка / массива Maven
Есть ли способ передать свойство списка / массива Maven (например, необязательный параметр аргументов maven-exec-plugin), используя системный подход?
Я знаю, что необязательный параметр arguments может быть переопределен переменной среды exec.args, а необязательный параметр commandlineArgs может быть переопределен системным свойством exec.args. Но что я хотел бы узнать, существует ли общий способ командной строки Maven для переопределения таких свойств списка / массива конфигураций плагинов с использованием системных свойств, когда речь идет о других плагинах, имеющих такие свойства конфигурации списка / массива?
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>execute somebinary</id>
<phase>compile</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>somebinary</executable>
<arguments>
<argument>arg1</argument>
<argument>arg2</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
Я ожидаю сделать это с помощью команды вроде:
mvn exec:exec -Dexec.arguments=arg1,arg2
Но это не работает, как я ожидаю.
0 ответов
Просто заключите список параметров в двойные кавычки "". Пример: pom.mxl
<project .....>
<modelVersion>4.0.0</modelVersion>
<groupId>com.logicbig.example</groupId>
<artifactId>mvn-exec-java-example</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
основной класс
public class MyMainClass {
public static void main(String[] args) {
Arrays.stream(args).forEach(System.out::println);
}
}
аргументы командной строки
mvn -q clean compile exec:java -Dexec.mainClass="com.logicbig.example.MyMainClass" -Dexec.args="myArg1 myArg2"