2016-07-14 36 views
0

我有一个扩展现有父项目(这是“标准产品”,我的产品将是一个“定制产品”)的maven项目。扩展maven货物插件jvmargs

父级声明org.codehaus.cargo/cargo-maven2-plugin并将其传递给configuration/cargo.jvmargs下的一些VM参数。就像这样:

<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> 

现在,在我的自定义的项目,我想这些JVM ARGS多一个参数(假设-ArgD)延伸,从而使ARG游戏-ArgA -ArgB -ArgC -ArgD。我不想重写整个插件只做一点点改变。

我知道我可以指定这个:cargo:run -Dcargo.jvmargs="-ArgD"但这里的问题是:所有其他参数(ArgA,ArgB,ArgC)被覆盖/删除,只有ArgD会保留。我需要的是类似cargo:run -Dcargo.jvmargs="current_cargo.jvmargs + -ArgD"

这是可能以某种方式?

回答

1

最简单的可能性是将父vom中的jvmargs移到maven属性。然后在您的自定义项目中,您将能够将使用maven属性的jvmargs与您的自定义值相结合。例如:

父POM:

<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参数。

+0

伙计们,我们赢了!谢谢你,'cargo.start.jvmargs'正是我所需要的。我已经设置的参数被保留,我的新参数被放置。完善。 – BAER