基本概念
Maven的聚合特性能够把项目的各个模块聚合在一起构建,而Maven的继承特性则能帮助抽取各模块相同的依赖和插件等配置。
一个项目的子模块都应该使用相同的groupId,如果它们一起开发和发布,还应该使用同样的version,此外,它们的artifactId还应该使用一致的前缀,以方便同其它项目区分。
聚合
如果一次性构建两个或者更多的项目,而不是分别到对应的目录下分别执行mvn命令,Maven聚合(或者称为多模块)这一特性就是为该需求服务的。
聚合项目的POM文件,第一个特殊的地方为packaging,其值为pom,对于聚合模块来说,其打包的方式packaging的值必须为pom,否则就无法构建。
继承
作为父模块的POM文件,其打包类型也必须为pom。
对应子模块中的POM文件,需要使用parent元素生命父模块,parent下的子元素groupId、artifactId和version指定了父模块的坐标,这三个元素是必须的。元素relativePath表示父模块POM的相对路径。
插件管理
Maven提供了dependencyManagement元素帮助管理依赖,类似地,Maven提供了pluginManagement元素帮助管理插件。在该元素中配置的依赖不会造成实际的插件调用行为,党POM中配置了真正的plugin元素,并且其groupId和artifactId与pluginManagement中配置的插件匹配时,pluginManagement的配置才会影响实际的插件行为。
所有用到的插件版本在父pluginManagement元素中声明,这样做可以统一项目的插件版本,避免潜在的插件不一致或者不稳定问题,也更易于维护。
文章仅供参考,代码并不是全正确,只需要知道在对应的情况,可以做对应的处理,代码是变化的,我相信原理不变