【问题标题】:howto disable compile of modules when tests are skipepd跳过测试时如何禁用模块编译
【发布时间】:2011-09-12 06:33:59
【问题描述】:

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

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

但它们是经过编译的,最多需要一分钟的构建时间。

当设置了选项 skipTests 时,如何选择性地关闭此类模块?

【问题讨论】:

    标签: maven-2 build


    【解决方案1】:

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

    • 当您运行mvn ... -DskipTests 时,只会跳过执行测试。如果您运行mvn ... -Dtest=notest,这将是相同的行为
    • 当您运行mvn ... -Dmaven.skip.test=true 时,测试执行和编译都会被跳过。

    所以第二个命令就足够了,无需修改您的pom.xml 文件。

    (source)

    【讨论】:

    • @Bastl 你使用的是什么版本的 Maven?
    【解决方案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>
    

    我实际上并没有尝试过……理论上它应该可以工作。我似乎记得&lt;skip&gt; 配置在所有插件上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      • 2021-05-30
      • 2012-01-05
      • 2020-12-02
      • 2023-03-04
      相关资源
      最近更新 更多