Maven Multithread构建如何工作?

时间:2015-06-30 16:24:10

标签: multithreading maven build parallel-processing

我一直在四处寻找并希望澄清maven在使用 -T 选项时如何执行多模块项目的构建。在confluence page上,他们注意到

  

此构建模式分析项目的依赖关系图,并根据项目的依赖关系图计划可并行构建的模块......

所以据我所知,如果我执行mvn clean install -T 4,我有模块A,B,C,D,E和F这样

  • A取决于B
  • B取决于C
  • 和D依赖于C

C,E和F都会同时开始,而D和B只会在C完成后才开始。这是对的吗?

我的进一步问题是:家属(D)和家属(D)在其父母(C)出现后立即开始

  1. 完成编译/安装但不一定完成测试,或
  2. 完成了包括测试在内的所有事情?
  3. 关于我的设置的信息:在Maven 3.3.3和Maven 3.1.1上都发生了这种情况。我目前正在使用Java 1.7.0_79

1 个答案:

答案 0 :(得分:1)

正如您在graphic they start off are based on their levels上看到的那样。所以我假设模块C,E和F首先启动所有这些模块(级别1)完成下一级别,模块B和D将启动,最后模块A。

模块内的执行基于生命周期,这意味着模块将运行生命周期的所有阶段,例如,如果执行mvn -T 4 package所有模块将运行所有周期,包括包周期。 如果运行mvn -T 4 install所有模块都运行所有生命周期步骤(包含测试阶段)......

如果您拥有大量模块,smart-builder可以加快速度。