扩展maven货物插件jvmargs

时间:2016-07-14 13:33:19

标签: maven jvm-arguments maven-cargo

我有一个maven项目,它扩展了现有的父项目(这是我的产品将成为“定制产品”的“标准产品”)。

父级声明org.codehaus.cargo / cargo-maven2-plugin并在configuration / cargo.jvmargs下传递一些VM args。像这样:

    <plugin>
      <groupId>org.codehaus.cargo</groupId>
      <artifactId>cargo-maven2-plugin</artifactId>
      <version>1.4.18</version>
      <configuration>
        <container>
          <containerId>tomcat8x</containerId>
          [...]
          <dependencies>
            [...]
          </dependencies>
        </container>
        <configuration>
          <properties>
            <cargo.jvmargs>-ArgA -ArgB -ArgC</cargo.jvmargs>
          </properties>
          <configfiles>
            [...]
          </configfiles>
          <files>
            [...]
          </files>
        </configuration>
      </configuration>
    </plugin>

现在在我的自定义项目中,我想用另外一个参数(让我们说-ArgD)扩展这些jvm args,这样args就是-ArgA -ArgB -ArgC -ArgD。我不想覆盖整个插件只是为了做一点改变。

我知道我可以指定:cargo:run -Dcargo.jvmargs="-ArgD"但问题是:所有其他args(ArgA,ArgB,ArgC)被覆盖/删除,只剩下ArgD。我需要的是cargo:run -Dcargo.jvmargs="current_cargo.jvmargs + -ArgD"之类的东西。

这有可能吗?

1 个答案:

答案 0 :(得分:1)

最干净的可能性是将父母pom中的jvmargs移动到maven属性。然后在您的自定义项目中,您可以将使用maven属性的jvmargs与您的自定义值相结合。例如:

父母:

<properties>
    <cargo.base.jvmargs>-ArgA -ArgB -ArgC</cargo.base.jvmargs>
</properties>
[...]
<plugin>
  <groupId>org.codehaus.cargo</groupId>
  <artifactId>cargo-maven2-plugin</artifactId>
  <version>1.5.0</version>
  <configuration>
      [...]
    <configuration>
      <properties>
        <cargo.jvmargs>${cargo.base.jvmargs}</cargo.jvmargs>
      </properties>
        [...]
    </configuration>
  </configuration>
</plugin>

您的自定义pom:

<plugin>
  <groupId>org.codehaus.cargo</groupId>
  <artifactId>cargo-maven2-plugin</artifactId>
  <configuration>
      [...]
    <configuration>
      <properties>
        <cargo.jvmargs>${cargo.base.jvmargs} -ArgD</cargo.jvmargs>
      </properties>
        [...]
    </configuration>
  </configuration>
</plugin>

如果无法修改父pom,您可以使用货物属性cargo.start.jvmargs(请参阅this page)。此属性在启动时向容器添加java参数。