如何在不触发测试的情况下运行maven-release-plugin?
我努力了
-Dmaven.test.skip=true
和
-DskipTests
和
-DpreparationGoals=clean
...却无济于事。
是的,我知道如果测试没有通过,我就不会发布,但是我无法控制让我的同事编写可靠的测试。
Answers:
-Darguments="-DskipTests"
是您想要的,或者在pom中显式配置分支的执行。
2
。我花了几个小时试图解决这个问题……但是1.我错过了文档中的内容吗?还是mvn文档中缺少了内容?2.我已经<skipTests>true</skipTests>
在公司POM中进行了 配置。仍然没有用。起作用的是您的解决方案。
您有太多不同的选择,可以避免并使用发布插件跳过测试
例子: mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare
-第二个是在构建中的pom.xml上执行这些参数,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>1.9.4</version>
</dependency>
</dependencies>
<configuration>
<skip>true</skip>
<skipTests>true</skipTests>
<preparationGoals>clean validate</preparationGoals>
<arguments>-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true</arguments>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release-mode</releaseProfiles>
<tagNameFormat>TEST-@{project.version}</tagNameFormat>
</configuration>
</plugin>
请注意,第二种方法会覆盖第一种方法。
我建议您先通过单个操作准备发布,然后再编辑工作目录上的release.properties文件,并在exec.additionalArguments
其中存在参数的情况下查看属性。它看起来像:exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode
。
之后就可以执行发布了。
使用以下参数跳过测试
-Darguments="-DskipTests"
要么
或者默认跳过
[...]
<properties>
<skipTests>true</skipTests>
</properties>
[...]