1. 聚合
对于聚合模块,其打包方式packaging 的值必须为pom,否则就无法构建
用户可以通过在一个打包方式为pom的Maven项目中生命任意数量的module元素来实现模块的聚合,每个pom的值都是当前pom的相对路径
通常将聚合模块放置在项目目录的最顶层,其他模块则作为聚合模块的子目录存在。
聚合模块仅仅是帮助聚合其他模块的构建的工具,它本身并无实际内容。
在编译时Maven会首先解析聚合模块的pom,分析要构建的模块、并计算一个反应堆构建顺序,然后依照这个顺序依次构建各个模块
2. 继承
对于父模块,其打包类型必须是pom
在子模块中生命父模块,元素需包含relativePath 表示父模块pom的相对路径
3. 依赖管理
使用dependencyManagement 既能让子模块继承到父模块的依赖配置,又能保证子模块依赖使用的灵活性。
在dependencyManagement 元素下的依赖生命不会引入实际的依赖,不过它能够约束dependencies 下的依赖使用。
4. 反应堆
实际的构建顺序:
Maven按顺序读取pom,如果该pom没有依赖模块,那么就构建该模块,否则就先构建其依赖模块,如果该依赖模块还依赖于其他模块,则进一步先构建依赖的依赖。
裁剪反应堆:
Maven 提供命令行裁剪反应堆。