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

sev*_*evo 4 default maven-plugin maven-3

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

khm*_*ise 5

请注意,如果我能正确理解您的问题,请注意:

例如,如果您想更改已经定义的插件的配置,则应注意,您需要使用正确的执行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]
Run Code Online (Sandbox Code Playgroud)

大括号中的值给出了提示:default-clean现在可以用于向配置中添加信息或更改行为:

[INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ parent ---
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-maven) @ parent ---
[INFO]
Run Code Online (Sandbox Code Playgroud)

请参阅以下更多说明。

您可以根据需要执行此操作。可以说您在父pom文件中定义了以下内容:

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-clean-plugin</artifactId>
    <executions>
      <execution>
        <id>default-clean</id>
        <configuration>
         <.. combine.children="append">
         </...>
        </configuration>
Run Code Online (Sandbox Code Playgroud)

现在,在继承的pom文件中,您可以编写以下内容:

<plugin>
 <groupId>..</groupId>
 <artifactId>..</artifactId>
 <configuration>
   <values>
     <value>First</value>
   </values>
 </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

或者,如果您执行其他操作:

<plugin>
 <groupId>..</groupId>
 <artifactId>..</artifactId>
 <configuration>
   <values combine.children="append">
     <value>Second</value>
   </values>
 </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

或者您可以明确给出已经是默认值的内容:

<plugin>
 <groupId>..</groupId>
 <artifactId>..</artifactId>
 <configuration>
   <values combine.children="override">
     <value>Second</value>
   </values>
 </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

在pom参考中有记录