如何在跳过测试时禁用模块编译

时间:2011-06-10 06:49:23

标签: maven-2 build

在我们的“大型构建”(40多个模块)中,我们有几个模块只包含测试。

当我将-DskiptTests提供给mvn时,测试不会被执行。

但它们是经过编译的,建造时间长达一分钟。

如果设置了选项skipTests,我如何有选择地关闭这些模块?

2 个答案:

答案 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