Maven – 如何编译testing而不运行它们?

Maven有没有办法编译testing而不运行它们? 我想用IDE来运行特定的testing,而不是所有的testing。

你可以尝试使用参数-DskipTests

参考文献:

  • Maven的Surefire插件#skipTests

test-compile生命周期阶段如何? 它不需要任何testing跳过,因为它发生在test阶段之前。 也就是说,

 $ mvn test-compile 

并做了。

构build生命周期介绍进一步解释。

当执行包含testing阶段的目标(例如包)时,可以做两件事情:

  • 使用命令mvn -DskipTests=true package 。 这将编译所有的testing,但不运行它们。
  • 或者mvn -Dmaven.test.skip=true package 。 这不会编译或运行testing分支。

只要编译testing和代码,而不运行它们,只需要:

 mvn test-compile compile 

如果你的settings.xml文件也可以使用

 <maven.test.skip>true</maven.test.skip> 

Maven Surefire插件文档在这一点上是清楚的:

skipTests
设置为“true”跳过正在运行的testing,但仍然编译它们。(…)
默认值是: false。
用户属性是: skipTests。

这个选项是可用的,因为在Maven的Surefire插件2.4+

如果你真的只想编译testing (跳过所有其他阶段,如compile ),这将做

 mvn org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile 

查看默认生命周期的插件绑定 。