我怎样才能让maven-release-plugin在不触发测试的情况下运行?我已经尝试
-Dmaven.test.skip=true
字符串和
-DskipTests
型和
-DpreparationGoals=clean
型……但没有一个工作。是的,我知道如果测试没有通过我就不应该发布,但是我无法控制让我的同事编写可靠的测试。
hyrbngr71#
-Darguments="-DskipTests"是你想要的,或者在pom中显式配置forked execution。
-Darguments="-DskipTests"
yrwegjxp2#
-Darguments="..."将参数传递给分叉的maven进程,但重要的是要意识到这里使用了两个不同的开关。(如果您对test-jar类型有任何依赖,这一点很重要)。-Dmaven.test.skip=true强制maven甚至不编译测试,这意味着将不会生成任何测试罐。因此,您必须使用-Darguments,但要跳过正在运行的测试,请仅使用skipTests,要停止编译,请使用maven.test.skip。
-Darguments="..."
-Darguments
skipTests
maven.test.skip
osh3o9ms3#
如果你只是想跳过集成测试,这将做到这一点:
-Darguments="-DskipITs"
字符串
olhwl3o24#
你有太多不同的选择来避免和跳过发布插件的测试
价格:mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare
mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare
<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。之后,您可以执行释放。
exec.additionalArguments
exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode
r6hnlfcb5#
我通过简单地将configurationpreparationGoals添加到clean来避免运行verify目标:
configuration
preparationGoals
clean
verify
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.5.3</version> <configuration> <preparationGoals>clean</preparationGoals> <!-- See here --> </configuration> </plugin>
xxe27gdn6#
使用以下参数跳过测试第一个月或
或者默认跳过
[...] <properties> <skipTests>true</skipTests> </properties> [...]
whhtz7ly7#
当使用gitflow-maven-plugin跳过测试时,在配置属性中使用skipTestProject:true(默认值为false),详细说明见文档:https://aleksandr-m.github.io/gitflow-maven-plugin/release-finish-mojo.html举例说明:
<plugin> <groupId>com.amashchenko.maven.plugin</groupId> <artifactId>gitflow-maven-plugin</artifactId> <version>${gitflow.plugin.version}</version> <configuration> <skipTestProject>true</skipTestProject> </configuration> </plugin>
7条答案
按热度按时间hyrbngr71#
-Darguments="-DskipTests"
是你想要的,或者在pom中显式配置forked execution。yrwegjxp2#
-Darguments="..."
将参数传递给分叉的maven进程,但重要的是要意识到这里使用了两个不同的开关。(如果您对test-jar类型有任何依赖,这一点很重要)。-Dmaven.test.skip=true
强制maven甚至不编译测试,这意味着将不会生成任何测试罐。因此,您必须使用
-Darguments
,但要跳过正在运行的测试,请仅使用skipTests
,要停止编译,请使用maven.test.skip
。osh3o9ms3#
如果你只是想跳过集成测试,这将做到这一点:
字符串
olhwl3o24#
你有太多不同的选择来避免和跳过发布插件的测试
价格:
mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare
字符串
请注意,第二个方法会覆盖第一个方法。
我建议你在一个单独的操作上首先准备发布,然后你可以在工作目录上编辑release.properties文件,如果你的参数在那里,看看
exec.additionalArguments
属性。它看起来像:exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode
。之后,您可以执行释放。
r6hnlfcb5#
我通过简单地将
configuration
preparationGoals
添加到clean
来避免运行verify
目标:字符串
xxe27gdn6#
使用以下参数跳过测试
第一个月
或
或者默认跳过
字符串
whhtz7ly7#
当使用gitflow-maven-plugin跳过测试时,在配置属性中使用skipTestProject:true(默认值为false),详细说明见文档:https://aleksandr-m.github.io/gitflow-maven-plugin/release-finish-mojo.html
举例说明:
字符串