使用 Maven 是否可以 "add to" 属性 或 parent pom 中指定的插件值?

with maven is it possible to "add to" a property or plugin value specified in a parent pom?

如果,在我的 maven 项目的 parent pom.xml 中,它有一些 属性 像这样:

<properties>
   <argLine>some args</argLine>
</properties>

是否有可能在 child 中以某种方式 "augment" 那样,例如

<properties>
   <argLine>${parent.argLine} some more args</argLine>
</properties>

类似地,插件设置,希望我能做类似的事情

<build>
   <plugins>
    <plugin>
       <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
            <argLine>${parent.plugin.maven-surefire-plugin.argLine} -Xmx1G</argLine>
          </configuration> 

我基本上只是添加到 parent?

中指定的一些设置

这个问题的动机是我想知道如何使用 jacoco 插件,并且在根 pom 中指定一些常规设置“-Xmx1G”,而在 children 中他们可以添加其他 child 特定参数到那个通用参数,必要时。参考:

我想我可以重命名 jacoco 生成的参数( "propertyName" 设置,将其从 argLine 更改)然后我可以使用 parent' s ${argLine} 并将其添加到 jacococ 中,但我的问题仍然很有趣...

在您的父 pom 中使用 pluginMagement 并在其中指定配置。它们对于父级中的所有模块都是通用的。

在 Maven 3 中你可以使用 ${project.parent.propertyName} link

属性 应该在您的 child 的 pom 中直接可见:${argLine}

我能想到的唯一方法是 复制 parent.

中的参数

所以parent:

<properties>
   <argLine>some args</argLine>
   <parentArgLine>some args</parentArgLine>
</properties>

然后使用

<properties>
   <argLine>${parentArgLine} some child args</argLine>

在 child.

在我的特殊情况下,问题是插件 "overrides" 一个 maven 变量。