是否可以使用系统属性方法传递Maven列表/数组属性(例如maven-exec-plugin参数可选参数)?
我知道exec.args环境变量可以覆盖arguments可选参数,而exec.args系统属性可以覆盖commandlineArgs可选参数。 但是,我想知道是否存在一种通用的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 :(得分:1)
只需将参数列表输入双引号“”即可。 例: 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"