我正在使用exec-maven-plugin来运行java app。我需要传递JVM参数和程序参数。我正在设置这样的JVM参数:
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>MyId</id>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>MyClass</mainClass>
<arguments>
<argument>-XX:+UseG1GC</argument>
<argument>-Xms2G</argument>
<argument>-Xmx2G</argument>
</arguments>
</configuration>
</execution>
...
并运行程序:
mvn exec:java@MyId -Dexec.args="my params"
然而,看起来pom.xml中设置的参数不会被-Dexec.args使用和覆盖,而section仅用作程序参数。
尝试添加到参数中(如this article所示),但遇到了
Unable to parse configuration of mojo org.codehaus.mojo:exec-maven-plugin:1.6.0:java for parameter arguments: Cannot store value into array:
ArrayStoreException -> [Help 1]
在jboss.org上发现了类似的unresolved问题。
有什么建议吗?
答案 0 :(得分:0)
在plugin page - 最后找到我的问题的答案。
此目标可帮助您在与Maven相同的VM中运行Java程序。
为了模仿VM的工作方式,目标很长 但是有一些细微的差别。今天所有的差异 来自目标处理线程管理的方式。
注意:java目标不会产生新进程。 任何特定于VM的 必须将要传递给已执行类的选项传递给 使用MAVEN_OPTS环境变量的Maven VM。
这对我不起作用,所以切换到mvn exec:exec模式。适用于那里的JVM参数。
在此处找到解决方案:Using Maven 'exec:exec' with Arguments