【发布时间】:2016-04-16 04:24:15
【问题描述】:
是否可以像使用父 POM 配置元素一样不覆盖但合并或附加到 Apache Maven 中的默认插件配置?
【问题讨论】:
标签: maven-3 default maven-plugin
是否可以像使用父 POM 配置元素一样不覆盖但合并或附加到 Apache Maven 中的默认插件配置?
【问题讨论】:
标签: maven-3 default maven-plugin
我确定我是否正确理解了您的问题:
例如,如果您想更改已定义插件的配置,您应该知道您需要使用正确的执行 ID,该 ID 可以在默认构建期间查看,该 ID 会在日志输出中打印出来(类似于这):
[INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ parent ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-maven) @ parent ---
[INFO]
大括号中的值给出了提示:default-clean 现在可用于向配置添加信息或更改行为:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<executions>
<execution>
<id>default-clean</id>
<configuration>
<.. combine.children="append">
</...>
</configuration>
请参阅下面的更多解释。
如果需要,您可以这样做。假设您在父 pom 文件中定义了以下内容:
<plugin>
<groupId>..</groupId>
<artifactId>..</artifactId>
<configuration>
<values>
<value>First</value>
</values>
</configuration>
</plugin>
在继承的 pom 文件中,您现在可以编写以下内容:
<plugin>
<groupId>..</groupId>
<artifactId>..</artifactId>
<configuration>
<values combine.children="append">
<value>Second</value>
</values>
</configuration>
</plugin>
或者如果你做一些不同的事情:
<plugin>
<groupId>..</groupId>
<artifactId>..</artifactId>
<configuration>
<values combine.children="override">
<value>Second</value>
</values>
</configuration>
</plugin>
或者您可以明确给出已经是默认值的内容:
<plugin>
<groupId>..</groupId>
<artifactId>..</artifactId>
<configuration>
<values combine.children="merge">
<value>Second</value>
</values>
</configuration>
</plugin>
【讨论】: