Java Maven发布插件跳过执行但不准备的测试
使用maven release插件时,Java Maven发布插件跳过执行但不准备的测试,java,maven,Java,Maven,使用maven release插件时,mvn release:prepare和mvn release:perform都将运行测试 是否有任何方法可以配置这些内容,使其仅在mvn发行版:prepare期间运行 我知道你可以通过: -Darguments="-DskipTests" 但这将跳过两个目标期间的测试,这是我不想要的。我也不希望它们只在mvn发布期间运行:执行而不准备,因为执行期间的失败已经标记了存储库。您应该能够通过将元素添加到发布插件配置中来实现这一点。这将仅用于发布:执行Mojo
mvn release:prepare
和mvn release:perform
都将运行测试
是否有任何方法可以配置这些内容,使其仅在mvn发行版:prepare期间运行
我知道你可以通过:
-Darguments="-DskipTests"
但这将跳过两个目标期间的测试,这是我不想要的。我也不希望它们只在mvn发布期间运行:执行而不准备,因为执行期间的失败已经标记了存储库。您应该能够通过将
元素添加到发布插件配置中来实现这一点。这将仅用于发布:执行Mojo
像这样的事情应该可以做到:
<build>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<releaseProfiles>skipTestsForReleasePerform</releaseProfiles>
</configuration>
</plugin>
</plugins>
</build>
(...)
<profiles>
<profile>
<id>skipTestsForReleasePerform</id>
<properties>
<maven.test.skip>true</maven.test.skip>
</properties>
</profile>
</profiles>
maven发布插件
skipTestsForReleasePerform
(...)
skipTestsForReleasePerform
真的
这看起来很有意义,我正在试用配置文件。Jenkins不允许您单独参数化发布目标,这使我的问题更加复杂。发布的目标和参数只有一个框。我最终解决了这个问题,让作业只运行release:prepare as normal,然后运行一个post-build操作release:perform without tests only on real release(Jenkins设置了一个环境变量)。Hacky和不完全是Maven的方式,但它最终做得足够好。通过使用我的回答,你不应该被迫更改Maven命令中的任何内容,所有内容都在POM中指定,我们只是“强制”发布插件添加-Pxxx和releaseProfile元素。效果非常好!