【问题标题】:How to set both VM Params and Program args using exec-maven-plugin?如何使用 exec-maven-plugin 设置 VM 参数和程序参数?
【发布时间】:2018-10-20 00:09:57
【问题描述】:

我正在使用 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 使用和覆盖,并且部分仅用作程序参数。

试图添加到参数中(如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 问题。

有什么建议吗?

【问题讨论】:

  • 您在 exec-maven-plugin 网站上打开过问题吗?
  • @khmarbaise 原来是一个功能)

标签: maven maven-3 maven-plugin jvm-arguments exec-maven-plugin


【解决方案1】:

plugin page 上找到我的问题的答案 - 在它的最后。

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

我们的目标是尝试模仿虚拟机的工作方式, 但有一些细微的差别。今天所有的差异 来自目标处理线程管理的方式。

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

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

在这里找到解决方案:Using Maven 'exec:exec' with Arguments

【讨论】:

    猜你喜欢
    • 2019-03-26
    • 1970-01-01
    • 2011-03-26
    • 2011-01-01
    • 2011-07-30
    • 2014-12-25
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    相关资源
    最近更新 更多