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

时间:2016-04-13 09:22:10

标签: maven-3 default maven-plugin

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

1 个答案:

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

这是documented in the pom reference