小编典典

禁用在父POM中定义的Maven插件

Maven-2

我使用的父POM定义了我不想在子POM中运行的插件。如何完全禁用子pom中的插件?

约束:我不能更改父POM本身。


阅读 740

收藏
2020-09-21

共2个答案

小编典典

在禁用子POM中的Findbugs时,以下对我有用:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>findbugs-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>ID_AS_IN_PARENT</id> <!-- id is necessary sometimes -->
            <phase>none</phase>
        </execution>
    </executions>
</plugin>

注意:Findbugs插件的完整定义在我们的父/超级POM中,因此它将继承该版本等。

在Maven 3中,您需要使用:

 <configuration>
      <skip>true</skip>
 </configuration>

用于插件。

2020-09-21
小编典典

该线程是旧的,但也许有人仍然对此感兴趣。我发现的最短形式是对λlex和bmargulies的示例的进一步改进。执行标签如下所示:

<execution>
    <id>TheNameOfTheRelevantExecution</id>
    <phase/>
</execution>

我想强调2点:

阶段设置为“无”,虽然它仍然是hack,但看起来比“ none”更没有hacker。
id必须与您要覆盖的执行相同。如果您不指定执行ID,则Maven会隐式地执行该操作(这是您不直观地期望的)。

2020-09-21