在我们的“大型构建”(40多个模块)中,我们有几个模块只包含测试。
当我将-DskiptTests提供给mvn时,测试不会被执行。
但它们是经过编译的,建造时间长达一分钟。
如果设置了选项skipTests,我如何有选择地关闭这些模块?
答案 0 :(得分:2)
您必须组织根pom,以便通过配置文件激活测试模块,而不是使用-Dmaven.test.skip
转而使用-P!testProfile
停用它们,从而跳过它们。
另一个想法是你可以这样做:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<skip>${maven.test.skip}</skip>
</configuration>
</plugin>
</plugins>
我实际上没有尝试过......它应该在理论上起作用。我似乎记得<skip>
配置在所有插件上。
答案 1 :(得分:1)
只是为了澄清Gareth David的观点:
mvn ... -DskipTests
时,只会跳过测试的执行。如果您运行mvn ... -Dtest=notest
mvn ... -Dmaven.skip.test=true
时,会跳过 测试执行和编译。所以第二个命令就足够了,不需要修改你的pom.xml
文件。
(source)