是否有可能不覆盖,但在Apache Maven中合并或附加到默认插件配置,就像使用父POM配置元素一样?
答案 0 :(得分:4)
我注意到我是否理解你的问题:
如果您想要更改已定义插件的配置,您应该知道您需要使用正确的执行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>