Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 如何使一些项目并行建设?_Maven_Parallel Builds - Fatal编程技术网

Maven 如何使一些项目并行建设?

Maven 如何使一些项目并行建设?,maven,parallel-builds,Maven,Parallel Builds,我正在从事一个非常大的maven项目,它有400多个模块。为了加快构建速度,请执行以下操作: mvn install -T4 这会失败,因为一些模块相互依赖,它们必须放在一起 但是大多数其他模块是独立的,有没有办法保持一些模块的构建顺序,而其他模块是并行的?Maven的并行构建功能考虑了依赖关系。也就是说,如果一个模块依赖于另一个模块,它们将始终按顺序运行。这种自动排序是Maven反应堆最重要的功能 在以下情况下,模块B依赖于模块A: B依赖于a(即a列在B的依赖项块中)。请注意,坐标必须完

我正在从事一个非常大的maven项目,它有400多个模块。为了加快构建速度,请执行以下操作:

mvn install -T4
这会失败,因为一些模块相互依赖,它们必须放在一起


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

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

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

  • B依赖于a(即a列在B的依赖项块中)。请注意,坐标必须完全匹配,即一个常见的错误是依赖项部分的版本错误。(您可以使用enforcer插件的-规则
  • A是B使用的插件(尽管在使用它的同一反应器中定义插件通常是不好的风格-唯一有效的例外是如果B是A的集成测试)
  • A是B使用的扩展(也是糟糕的样式)
  • A是B的父母
  • A在范围导入中位于B的dependencyManagement块中
因此,如果您的模块没有按照正确的顺序构建,那么您的依赖项就没有正确指定(最常见的问题是:您对显式声明的工件使用类似
dependency:copy
。在这种情况下,请改用
dependency:copy dependencies