0

我正在做一个非常大的 Maven 项目,它有 400 多个模块。为了使其构建更快:

mvn install -T4

失败了,因为一些模块相互依赖,它们必须放在一起。

但是大多数其他模块都是独立的,有什么办法可以保持一些模块的构建顺序,而其他的则并行?

4

1 回答 1

0

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

在以下情况下,模块 B 依赖于模块 A:

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

因此,如果您的模块未按正确的顺序构建,则您的依赖项未正确指定(最常见的问题:您使用类似dependency:copy明确声明的工件的东西。在这种情况下,请dependency:copy-dependencies改用)

于 2015-09-18T08:03:06.997 回答