【问题标题】:with maven is it possible to "add to" a property or plugin value specified in a parent pom?使用 maven 是否可以“添加到”父 pom 中指定的属性或插件值?
【发布时间】:2015-07-10 17:36:10
【问题描述】:

如果在我的 maven 项目的父 pom.xml 中,它具有如下属性:

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

是否有可能在孩子身上以某种方式“增强”它,比如

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

我基本上只是添加到父级中指定的一些设置?

这个问题的推动力是我想知道如何使用 jacoco 插件,并且,在根 pom 中指定一些通用设置“-Xmx1G”,而在子级中,他们可以将其他子级特定参数添加到该通用参数中,在必要时。参考:https://stackoverflow.com/a/29975159/32453

我想我可以重命名 jacoco 生成的参数(https://stackoverflow.com/a/25571295/32453 "propertyName" 设置,从 argLine 更改它)然后我可以使用父级的 ${argLine} 并将其添加到 jacococ 之一,但是我的问题还是很有趣的……

【问题讨论】:

    标签: java maven jacoco


    【解决方案1】:

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

    【讨论】:

    • 不幸的是,如果我使用&lt;properties&gt;&lt;argLine&gt;${argLine} child parameters&lt;/argLine&gt;,它会响应以下错误:${argLine}': Detected the following recursive expression cycle in 'argLine':
    • 可能此错误与您的属性调用的事物有关,例如 maven 变量 maven.apache.org/surefire/maven-surefire-plugin/…。尝试重命名它。
    【解决方案2】:

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

    【讨论】:

    • 我想我可以在父级中设置一个名为 else 的属性,然后在父级中将其引用为“正确的名称”,然后如果我需要要在孩子中修改它,请参考 ${parentArgLine} myArgs 之类的原始文件。有趣的。但是,这仍然比我想经历的增加了一些箍(你必须知道它在父级中被称为什么,等等)但很有趣!
    【解决方案3】:

    使用 Maven 3,您可以使用 ${project.parent.propertyName} link

    【讨论】:

    • 在看起来很完美的纸上,比如“它应该可以工作”,但实际上我没有任何运气让它这样做(maven 3.2)你有任何小例子可以证明它工作?谢谢!
    【解决方案4】:

    我能想到的唯一方法是复制父级中的参数。

    所以家长:

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

    然后使用

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

    在孩子中。

    在我的特殊情况下的问题是插件“覆盖”了一个 Maven 变量。

    【讨论】:

    • 我想知道您是否可以在层次结构中添加另一个级别来创建所述重复,以及...还没有尝试过...
    猜你喜欢
    • 2020-08-19
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 2021-07-12
    相关资源
    最近更新 更多