如何使用exec-maven-plugin设置虚拟机参数和程序参数?

7

我正在使用exec-maven-plugin来运行Java应用程序。我需要传递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”覆盖,并且“”部分仅用作程序参数。
尝试将""添加到参数中(如这篇文章所示),但遇到了问题。
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上发现了类似的未解决问题。

有什么建议吗?


你在exec-maven-plugin的网站上开了一个问题吗? - khmarbaise
@khmarbaise,结果证明这是一个特性)。 - Tatiana Goretskaya
1个回答

3

我在插件页面的最后找到了我的问题答案。

此目标可帮助您在与Maven相同的VM中运行Java程序。

该目标花费了很大的力气来模拟VM的工作方式,但有一些微小的细微差别。今天,所有的差异都来自于目标处理线程管理的方式。

注意:java目标不会生成新进程。您想要传递给执行类的任何VM特定选项必须使用MAVEN_OPTS环境变量传递给Maven VM。

这对我不起作用,所以切换到mvn exec:exec模式,在那里可以使用JVM参数。

在这里找到了解决方案:使用Maven 'exec:exec'和参数


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接