原文链接 译者:carvendy
多模块工作指南
正如所看到Pom的介绍,Maven支持在一定条件下聚合那些继承项目。这部分概述,就是关于Maven项目处理多模块,和怎么样更有效地工作。
反应器
在Maven中的机制,处理多个模块的项目是由于反应器的帮助。这部分Maven核心做了一些事情
收集可用的模块构建
为项目排序按照正确的顺序构建
按照顺序构建选择的项目
反应排序
因为这些模块在内部一个多模块构建会有互相依赖,保证每个项目在需要之前被构建而对反应器排序就尤为重要了。
当项目排序的时候根据这些关系被使用:
构建中一个项目依赖另外一模块
一个插件声明在另外一个模块当这个模块在构建
一个插件构建时依赖另外一个模块
构建中另一个模块的扩展声明
按照在**<modules>**的声明顺序(如果没有其他规则的话)
笔记:在“实例化”被引用后 —— dependencyManagement和pluginManagement节点将不能构建反应器的排序了。
命令行选项
没有特别的配置需要只需利用反应器,无论如何它都可以自定义它的行为。
按照命令行的选择可以:
**–resume-from ** – 在一个特别的项目中恢复一个反应器(当它在中间失败了)
–also-make – 构建特别的项目和任何它们反应器的依赖关系
also-make-dependents – 构建特别项目和依赖它们。
–fail-fast – 默认行为 – 无论如何当一个模块构建失败,马上停止所有构建。
–fail-at-end 如果一个特别的模块构建失败了,继续其余的反应器和最后在报表输出失败的模块。
–non-recursive – 不使用反应器构建,甚至当项目声明模块和构建当前目录的项目的时候。
使用Maven命令行操作可以参考这些选项获得更多信息