2015-06-30 141 views
1

我一直在环顾四周,希望澄清一下如何在使用-T选项时maven执行多模块项目的构建。在他们的confluence page,他们指出,Maven多线程如何构建工作?

这个构建模式分析,可以建立并行项目的依赖关系图和时间表模块根据项目的依赖关系图...

所以要我的理解,如果我执行MVN清洁安装-T 4其中I有模块A,B,C,d,E,和F,使得

  • A是依赖于乙
  • B依赖基于C
  • 和d从属于C

C,E,和F将所有在同一时间开始,而d和B只会启动一次C被完成了。那是对的吗?

我的另一个问题是:做家属(d和B)尽快启动它的父(C)是

  1. 完成编译/安装,但不一定完成测试,或
  2. 一切完成包括测试?

信息关于我的设置:这事对我来说两个Maven的3.3.3和Maven 3.1.1。我目前正在使用Java 1.7.0_79

回答

1

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

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

,如果你有大量的模块的smart-builder可以让这个更快尤其如此。

+0

我知道每个模块最终都会贯穿整个生命周期的各个阶段,但是我的第二个问题更多的是关于何时它将从一个模块转移到另一个模块? 例如,如果我有4个线程,并且A B和C依赖于D,那么A B C是否必须等到D彻底完成?或者他们会在D建立后立即开始(尽管未经测试)。 – wilson

+0

正如我解释的水平。 – khmarbaise

+0

我不是在询问订单,而是询问时间。他们什么时候可以继续前进并开始下一个? – wilson