如何让maven-release-plugin跳过我的测试?

Ste*_*ven 175 maven maven-release-plugin maven-surefire-plugin

如何在不触发测试的情况下运行maven-release-plugin?

我试过了

-Dmaven.test.skip=true 
Run Code Online (Sandbox Code Playgroud)

-DskipTests 
Run Code Online (Sandbox Code Playgroud)

-DpreparationGoals=clean
Run Code Online (Sandbox Code Playgroud)

......但没有工作.

是的,我知道如果测试没有通过我不应该发布,但我无法控制让我的同事编写可靠的测试.

bma*_*ies 402

-Darguments="-DskipTests" 是你想要的,或者在pom中显式配置分叉执行.

  • IT是必要的,因为发布过程会分配一个新的maven进程,并且tpical -DskipTests不会作为系统属性传递. (4认同)
  • 希望我能投票给你`2`.我花了好几个小时试图做到这一点......但是1.我是否遗漏了文档中的内容或者mvn文档遗漏了什么?2.我在公司POM中配置了`<skipTests> true </ skipTests>`.仍然没有奏效.有效的是你的解决方案. (4认同)

Eng*_*ery 41

-Darguments="..."将参数传递给分叉的maven进程,但重要的是要意识到这里使用了两个不同的开关.该-DskipTests部队的Maven不运行任何测试,但测试仍在编译(如果你有一个测试罐子类型的任何依赖关系,这是很重要).的-Dmaven.test.skip=true力行家到甚至不编译的测试,这意味着任何测试罐不会产生.

因此,您必须使用-Darguments,但跳过仅运行使用的测试skipTests,以阻止它们编译使用maven.test.skip.


小智 21

如果您只想跳过集成测试,可以这样做:

-Darguments="-DskipITs"
Run Code Online (Sandbox Code Playgroud)