【发布时间】:2011-09-12 06:33:59
【问题描述】:
在我们的“大构建”(40 多个模块)中,我们有几个只包含测试的模块。
当我将 -DskiptTests 提供给 mvn 时,不会执行测试。
但它们是经过编译的,最多需要一分钟的构建时间。
当设置了选项 skipTests 时,如何选择性地关闭此类模块?
【问题讨论】:
在我们的“大构建”(40 多个模块)中,我们有几个只包含测试的模块。
当我将 -DskiptTests 提供给 mvn 时,不会执行测试。
但它们是经过编译的,最多需要一分钟的构建时间。
当设置了选项 skipTests 时,如何选择性地关闭此类模块?
【问题讨论】:
只是为了澄清 Gareth David 的观点:
mvn ... -DskipTests 时,只会跳过执行测试。如果您运行mvn ... -Dtest=notest,这将是相同的行为
mvn ... -Dmaven.skip.test=true 时,测试执行和编译都会被跳过。所以第二个命令就足够了,无需修改您的pom.xml 文件。
(source)
【讨论】:
您必须组织您的根 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> 配置在所有插件上。
【讨论】: