Maven多模块项目的阶段订单?
原谅我。我是马文的书呆子 以下是我的maven项目目录:Maven多模块项目的阶段订单?,maven,maven-2,multi-module,Maven,Maven 2,Multi Module,原谅我。我是马文的书呆子 以下是我的maven项目目录: project/ pom.xml moduleA/ moduleB/ sub-moduleA/ sub-moduleB/ sub-moduleC/ moduleC/ 当然,在每个模块和子模块中,它们都有自己的pom.xml。此外,在此示例中,moduleB依赖于moduleA,moduleA依赖于moduleC。我知道在maven中,它经历了多个阶段,但它是
project/
pom.xml
moduleA/
moduleB/
sub-moduleA/
sub-moduleB/
sub-moduleC/
moduleC/
当然,在每个模块和子模块中,它们都有自己的pom.xml
。此外,在此示例中,moduleB
依赖于moduleA
,moduleA
依赖于moduleC
。我知道在maven中,它经历了多个阶段,但它是一次一个阶段,还是一次一个模块。现在,我只关心的三个阶段是编译
,打包
,和安装
例如:
它是否按顺序1进行操作:
还是按顺序2进行:
或者它是以完全不同的顺序进行的,还是我对maven的理解完全不同
我正在运行Maven 2.2.1。谢谢 首先,我建议使用Maven 3而不是Maven 2,从后者到前者的迁移非常简单(有时您可以在不做任何更改的情况下完成),并且您会注意到性能有很大的提高
此外,关于构建顺序,您应该阅读一些关于负责处理多模块项目的系统的信息。顺序2:反应器检测所有项目,构建一个排序列表以按照正确的顺序构建项目(关于依赖项),然后按照此顺序构建项目
如果A依赖于B,那么如果B没有被完全处理,你就不能开始构建A。我并不是故意小气,但你应该熟悉maven的输出。它确实准确地告诉你它在做什么。它将精确地告诉您构建模块的顺序,然后它将精确地告诉您在构建每个模块时正在进行的阶段/执行 例如,这里有一个简化的生成报告。首先,它告诉你它的建筑是什么项目。然后,对于每个阶段,都有一个报告,说明正在执行哪个mojo。请注意,执行行以三个--(这是maven 3;与maven 2不同)开始和结束。请注意,它告诉您:
maven clean插件
default clean
default clean
的名称,其中标识了阶段,并且它是默认的
[INFO] ------------------------------------------------------------------------
[INFO] Building common-utilities 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.3:clean (default-clean) @ common ---
SNIP
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ common ---
SNIP
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ common ---
SNIP
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ common ---
当从Maven 2或Maven 3迁移时,你有什么好的资源考虑吗?我以前听说它非常复杂。@RobAveryIV它实际上非常简单,但这取决于当前项目配置的标准。或者是一些已经改变的事情。
compile moduleC
package moduleC
install moduleC
compile moduleA
package moduleA
install moduleA
compile moduleB
package moduleB
install moduleB
[INFO] ------------------------------------------------------------------------
[INFO] Building common-utilities 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.3:clean (default-clean) @ common ---
SNIP
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ common ---
SNIP
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ common ---
SNIP
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ common ---