追加或合并默认的 Maven 插件配置

Append or merge default maven plugin configuration

是否可以不覆盖而是合并或附加到 Apache Maven 中的默认插件配置,就像使用父 POM 配置元素一样?

我确定我是否正确理解你的问题:

例如,如果您想更改已定义插件的配置,您应该知道您需要使用正确的执行 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>

这是documented in the pom reference