聚合与继承

基本概念

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元素中声明,这样做可以统一项目的插件版本,避免潜在的插件不一致或者不稳定问题,也更易于维护。


文章仅供参考,代码并不是全正确,只需要知道在对应的情况,可以做对应的处理,代码是变化的,我相信原理不变


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 好久没有更新了,在这里给大家说声抱歉,实在是因为最近加班忙成狗,还有一个原因是我想把《maven实战》这本书剩下的...
    小炼君阅读 1,474评论 0 51
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • 一、聚合 为了能够使用一条命令就能构建 account-email和 account-persist两个模块,我们...
    madfrog_hc阅读 389评论 0 1
  • 一、聚合为了能够使用一条命令就能构建 account-email和 account-persist两个模块,我们需...
    wyatt_plus阅读 2,373评论 0 3
  • 遇上007之前,我从未想过今生还会把作文捡起来,遥想上学那些年也是语文课,专业课每门课学期末会写写论文!毕业这么多...
    琸珺洪kathy阅读 555评论 6 6