如何在Tycho 4.0.4的子模块中跳过tycho-compiler-plugin默认的validate-classpath目标?
如何在Tycho 4.0.4的子模块中跳过tycho-compiler-plugin默认的validate-classpath目标?
没问题,当然可以跳过子模块里的这个默认目标!我来给你讲两种常用的实现方式,你可以根据项目实际情况选择:
方法一:直接在子模块POM中解绑目标的构建阶段
你可以在需要跳过的子模块的pom.xml里,针对tycho-compiler-plugin的默认validate-classpath执行项进行配置,把它和任何构建阶段解绑,这样Maven就不会触发它了。代码示例如下:
<build> <plugins> <plugin> <groupId>org.eclipse.tycho</groupId> <artifactId>tycho-compiler-plugin</artifactId> <version>4.0.4</version> <executions> <execution> <id>default-validate-classpath</id> <goals> <goal>validate-classpath</goal> </goals> <phase>none</phase> <!-- 将绑定阶段设为none,目标就不会被执行 --> </execution> </executions> </plugin> </plugins> </build>
这种方式的优点是精准针对单个子模块的特定目标,配置后就会一直生效,适合固定不需要这个目标的子模块。
方法二:通过属性开关灵活控制
如果你有多个子模块需要配置,或者有时候需要临时开启/关闭这个目标,可以用Maven属性来做开关:
- 首先可以在父POM的
tycho-compiler-plugin配置里添加一个可配置的开关(这一步是可选的,主要是方便统一管理):
<plugin> <groupId>org.eclipse.tycho</groupId> <artifactId>tycho-compiler-plugin</artifactId> <version>4.0.4</version> <configuration> <skipValidateClasspath>${tycho.skip.validate.classpath}</skipValidateClasspath> </configuration> </plugin>
- 然后在需要跳过的子模块POM里,覆盖这个属性的值:
<properties> <tycho.skip.validate.classpath>true</tycho.skip.validate.classpath> </properties>
这种方式的好处是灵活,你可以随时在子模块里修改属性值,甚至通过命令行参数-Dtycho.skip.validate.classpath=true临时跳过,非常适合需要动态调整的场景。
备注:内容来源于stack exchange,提问作者Avian Driyanto
相关产品推荐
相关产品推荐

