如何使一些项目并行构建?

时间:2015-09-18 06:39:16

标签: maven parallel-builds

我正在开展一个非常大的maven项目,该项目有400多个模块。为了使其更快地构建:

mvn install -T4

哪个失败了,因为有些模块彼此依赖,所以必须将它们放在一起。

但是大多数其他模块是独立的,有没有办法保持一些模块构建顺序,但其他模块是否并行?

1 个答案:

答案 0 :(得分:0)

Maven的并行构建功能将依赖关系考虑在内。即,如果模块依赖于另一个模块,它们将始终按顺序运行。这种自动排序是Maven反应堆最重要的特性。

如果出现以下情况,模块B依赖于模块A:

  • B依赖于A(即A列在B的依赖块中)。请注意,坐标必须完全匹配,即常见错误是在依赖项部分中具有错误的版本。 (您可以使用Reactor Module Convergence - 规则执行者插件。
  • A是B使用的插件(尽管在使用它的同一个反应器中定义插件通常是不好的风格 - 唯一有效的例外是如果B是A的集成测试)。
  • A是B使用的扩展名(也是坏的风格)
  • A是B
  • 的父母
  • A位于范围导入中的B的dependencyManagement块中

因此,如果你的模块没有按照正确的顺序构建,那么你的依赖关系没有被正确指定(最常见的问题是:你使用dependency:copy之类的东西和明确声明的工件。在这种情况下,使用{{1}而不是)