我使用的父POM定义了我不想在子POM中运行的插件。如何完全禁用子pom中的插件?
约束:我不能更改父POM本身。
在禁用子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>
用于插件。
该线程是旧的,但也许有人仍然对此感兴趣。我发现的最短形式是对λlex和bmargulies的示例的进一步改进。执行标签如下所示:
<execution> <id>TheNameOfTheRelevantExecution</id> <phase/> </execution>
我想强调2点:
阶段设置为“无”,虽然它仍然是hack,但看起来比“ none”更没有hacker。 id必须与您要覆盖的执行相同。如果您不指定执行ID,则Maven会隐式地执行该操作(这是您不直观地期望的)。