Java 有条件地执行maven插件
我在pom.xml中配置了一些Maven插件。我只想在测试正在运行时执行这些插件(可以使用Java 有条件地执行maven插件,java,maven-2,Java,Maven 2,我在pom.xml中配置了一些Maven插件。我只想在测试正在运行时执行这些插件(可以使用-Dmaven.test.skip=true或-DskipTests跳过测试) 其中一个插件绑定到过程类构建生命周期阶段,另一个绑定到预集成测试阶段。您可以使用具有以下特殊激活条件的概要文件: <project> ... <profiles> <profile> <id>my-test-plugins</id>
-Dmaven.test.skip=true
或-DskipTests
跳过测试)
其中一个插件绑定到
过程类
构建生命周期阶段,另一个绑定到预集成测试
阶段。您可以使用具有以下特殊激活条件的概要文件:
<project>
...
<profiles>
<profile>
<id>my-test-plugins</id>
<activation>
<property><name>!maven.test.skip</name></property>
<property><name>!skipTests</name></property>
</activation>
<build>
<plugins>
<!-- define your plugins here -->
</plugins>
</build>
</profile>
</profiles>
</project>
...
我的测试插件
最后一个示例仅在我设置值时有效:
<property>
<name>wsdl2java</name>
<value>true</value>
</property>
wsdl2java
真的
感谢您提供Maven书籍的链接。除了这里所问/所答的内容之外,了解这些内容真的很有帮助。既然不适合我,我如何在不使用概要文件的情况下使用IF条件?基本上,我为整个项目设置了一组概要文件。对于一个子模块,我需要根据当前配置文件选择aspect-j插件的配置。我怎样才能用提议的模型做到这一点,不确定……这真的有效吗?看起来里面只能有一个元素。如果只有一个配置文件需要插件,这很好,但是如果我需要在两个不同的配置文件中运行同一个插件,并且我不想复制代码,那该怎么办?似乎这回答了如何有条件地激活配置文件。但这不是最初的问题。最初的问题是如何有条件地激活一个插件(概要文件中的一个插件,而不是全部),我有一个类似的情况,我希望有一个插件(tomcat7 maven插件)可以在本地开发中使用,但不能在CI构建中引用(TeamCity,只使用Artifactory repo中批准的工件)。按照@tenshi的建议,我添加了一个profile
元素,其id=localhost server
,但排除了激活
元素。然后,我在我的settings.xml
中添加了一个activeProfile
元素,以便它只在本地环境中处于活动状态。请参阅我的文章,并提供详细示例。这不是对原来问题的回答。要评论或要求作者澄清,请在他们的帖子下方留下评论——你可以随时对自己的帖子发表评论,一旦你有足够的评论,你就可以发表评论了。