【问题标题】:Tricks to speed up maven reactor builds加快 Maven 反应堆构建的技巧
【发布时间】:2013-06-17 09:38:41
【问题描述】:

我目前正在从事一个项目,该项目通常涉及构建包含相对大量子模块的 Maven 项目,例如10-15。我们为所有项目(如动物嗅探器、javadoc 等)启用了一堆插件。对于开发,为了加快速度,我通常在本地使用以下属性来停用一些步骤:

mvn clean install -DskipTests -Dmaven.javadoc.skip=true -Danimal.sniffer.skip=true

我的问题是,是否还有其他一些技巧可以用来加速典型的 Maven 构建过程。

【问题讨论】:

    标签: maven build-automation


    【解决方案1】:

    您可以使用-Dmaven.test.skip 来避免编译测试并使用-T 来并行构建模块。考虑到许多插件不是线程安全的,您可能会遇到并发问题,这意味着您的构建可能会失败。 如果你使用 Jenkins 作为 CI 工具,你可以按照它构建的方式配置你的 Maven 作业

    1. Maven 模块也是并行的
    2. 仅受上次 SCM 更改影响的 Maven 模块。

    【讨论】:

    • 谢谢,在我的例子中,启用并行构建将总构建时间减少了大约 10%。 -Dmaven.test.skip 并不总是有效。在我的情况下,其中一个模块依赖于测试类路径,因此我不得不使用-DskipTests
    • 如果您的某个模块依赖于测试类路径,那么您在构建版本或想要使用已发布的工件时可能会遇到麻烦,不是吗?
    • 我认为如果使用test-jar dependency,-Dmaven.test.skip 将会失败,但这不应该阻止一个假设测试阶段没有跳过的人发布。我们在一个项目中遇到了这个问题,但是从最近的主干开始,不再使用 test-jar 依赖项,所以 -Dmaven.test.skip 也对我有用。
    • 根据this thread,跳过了test-jar目标。
    【解决方案2】:

    可能的参考 hereherehere

    mvnsh 可能有助于开发时间。

    【讨论】:

      猜你喜欢
      • 2012-02-13
      • 2011-04-14
      • 2021-01-01
      • 2010-09-26
      • 2010-12-16
      • 1970-01-01
      • 2015-10-24
      • 2023-03-12
      • 2017-10-07
      相关资源
      最近更新 更多