我有一个设置,其中我的大多数项目都需要为编译和testCompile目标运行xtend插件。我在pluginManagement部分描述它:
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
<version>2.5.3</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
现在,有些项目不需要一个目标或另一个目标。我已经尝试过继承标记,随机属性玩但没有效果。如何覆盖执行以仅包含所需目标?
更新:故事的结论是不能禁用个人目标。可以管理的最小范围是execution
。
答案 0 :(得分:8)
通常,您只能使用技巧禁用执行:
将执行阶段设置为不存在阶段(dont-execute
)。但请注意,您必须使用两个不同的执行ID才能同时关闭两个目标:
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
<version>2.5.3</version>
<executions>
<execution>
<id>xtend-compile</id>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
<execution>
<id>xtend-testCompile</id>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
子模块:
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
<version>2.5.3</version>
<executions>
<execution>
<id>xtend-testCompile</id>
<phase>dont-execute</phase>
</execution>
</executions>
</plugin>
在您的特定情况下,您当然也可以在每次执行中使用skipXtend
配置属性来跳过执行,但只是阻止插件执行任何操作:
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
<version>2.5.3</version>
<executions>
<execution>
<id>xtend-testCompile</id>
<configuration>
<skipXtend>xtend-testCompile</skipXtend>
</configuration>
</execution>
</executions>
</plugin>