Maven - 跳过建筑测试课程

61 maven-2

有没有一种不构建测试类的简单方法?

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

沃尔特

Dan*_*iel 112

根据Maven Surefire插件的文档,-Dmaven.test.skip 应该跳过测试的编译和执行.相比之下,-DskipTests只是跳过测试执行:测试仍在编译中.

  • 但是,我讨厌这个命名.我完全不明白为什么`skipTests`只是跳过*执行*测试而`maven.text.skip`跳过*编译并执行*测试.我总是要查找哪一个是哪一个. (27认同)

joh*_*eur 18

只是要明确清楚:

skipTests 将编译中的任何内容<testSourceDirectory>,但不会执行它们.

maven.test.skip不编译任何测试,但将执行该作出自己的方式进入任何编译测试<testOutputDirectory>.

所以上面2的行为是相反的.只是想指出,maven.test.skip如果测试文件被解压缩/复制/等等,则不会跳过编译和执行.进入<testOutputDirectory>.

此外,根据您使用的Maven版本maven.test.skip.exec=true,还会跳过类似于skipTests的测试执行.

  • 不幸的是,至少在maven 3.0.5和maven-compiler-plugin 3.5.1中,这不是事实。您可以在每个包含测试的项目中对其进行测试:`mvn clean package -DskipTests = true &amp;&amp; mvn test -Dmaven.test.skip = true`将编译测试(由于第一个软件包执行),但不会在第二个中运行命令。假设使用标准目录,那么“ target / test-classes”将包含所有之后的测试,但尚未执行。 (2认同)

Pas*_*ent 7

运行阶段不包括test-compile,例如compile.

mvn clean compile
Run Code Online (Sandbox Code Playgroud)


Jim*_*imP 7

我不是maven的专家,但我在目前的项目中使用的是:

mvn clean install -DskipTests=true
Run Code Online (Sandbox Code Playgroud)

根据您的使用情况使用:

mvn compile -DskipTests=true
Run Code Online (Sandbox Code Playgroud)

也可能对你有用.