<packaging>元素为pom<modules>元素标识自己的子模块,每个子模块对应了一个module元素module元素中指定的是子模块所在目录相对于聚合模块的POM文件的位置,
如果子模块与聚合模块的POM同级,则
module元素应该是子模块所在的目录名
如果子模块与聚合模块同级,则module元素应是../子模块目录名
parent元素标识自己的父模块groupId和version属性parent.relativePath元素是相对于子模块POM文件自身的位置
如果子模块与聚合模块的POM同级,则
relativePath元素应是../pom.xml或类似的路径。
示例:
parent-module
|
|----sub-module1
| |
| |----pom.xml
|
|----sub-module2
|----pom.xml
项目构建时,Maven会首先根据relativePath检查父POM,如果找不到,再从本地仓库查找。relativePath的默认值是../pom.xml。
dependencyManagement声明依赖而不实际引入依赖,父子模块的dependencies元素使用已声明的依赖时可以省略版本号dependencies引入父模块声明的依赖,在引入时可以省略版本号,表示使用父模块中声明的版本import类型的依赖范围,可以将指定POM的dependencyManagement合并到当前POM的dependencyManagement中示例
<dependencyManagement>
<dependencies>
<dependency>
<groupId>xxx.yyy.zzz</groupId>
<artifactId>aaa-bbb-ccc</artifactId>
<version>m.n.p</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
build.pluginManagement元素用来管理插件,作用同样是声明而不真实引入插件依赖build.plugings.plugin元素实际引入,如果是父POM中已经声明的插件,子POM中无需指定版本和配置maven-compiler-plugin、maven-resources-plugin等对于Maven 3而言,超级POM位于$MAVEN_HOME/lib/maven-model-builder-x.x.x.jar中的org/apache/maven/model/pom-4.0.0.xml。
超级POM定义了:
mvn命令选项来裁剪反应堆-pl, --projects <arg> 只构建指定的模块,参数间使用逗号分隔
-am, --also-make 同时构建指定模块的依赖模块
-amd, --also-make-dependencies 同时构建所有依赖于指定模块的模块
-rf, --resume-from <arg> 在完整的反应堆构建顺序基础上,从指定的模块开始构建原文:https://www.cnblogs.com/zyon/p/11294231.html