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

Maven 2 如何在跳过测试时禁用模块编译,maven-2,build,Maven 2,Build,在我们的“大构建”(40多个模块)中,我们有几个只包含测试的模块 当我向mvn提供-DskiptTests时,测试不会执行 但它们是经过编译的,需要花费一分钟的构建时间 设置skipTests选项后,如何有选择地关闭这些模块?您必须组织根pom,以便通过配置文件激活测试模块,而不是使用-Dmaven.test.skip来启用-p!testProfile来停用它们,从而跳过它们 另一个想法是你可以做: <plugins> <plugin> <g

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

当我向mvn提供-DskiptTests时,测试不会执行

但它们是经过编译的,需要花费一分钟的构建时间


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

您必须组织根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>

org.apache.maven.plugins
maven编译器插件
${maven.test.skip}

我还没试过。。。它应该在理论上起作用。我似乎记得
配置在所有插件上。

只是为了澄清Gareth David的观点:

  • 当您运行
    mvn-DskipTests
    ,仅跳过测试的执行。如果您运行
    mvn,这是相同的行为-Dtest=notest
  • 当您运行
    mvn-Dmaven.skip.test=true
    ,则跳过测试执行和编译
因此,第二个命令就足够了,无需对
pom.xml
文件进行任何修改


()

@Bastl您使用的Maven版本是什么?