Maven 之 Parent vs Import Pom
本文最后更新于:2 年前
我希望一个项目下, 多个模块下的依赖能统一管理. 因此开了个父pom. 由于在一个项目空间下, 每次添加依赖的时候, 都会想着先在父pom中添加, 再到子pom中添加. 变得繁琐了.
而且当需要将model模块部署到nexus仓库时, 还需将父pom也部署上去. 但是父pom的artifact名字语义又不对. 所以我想是否能把依赖拎出来形成一个公司部门级别的依赖通过import的方式来解决. 在使用import的方式导入pom 发现只能导入该pom中的dependencyManagement中的定义, 不能导入pluginManagement中的定义. 所以又想是否可以再定义一层父pom. 命名为department-parent继承自spring-boot-starter-parent, department-parent包含对公司其它部门项目的依赖及第三方依赖, 然后让部门其它项目都继承自department-parent. 和同事讨论后得出结论. 如果以这种方式进行, 涉及到版本更新, 没人愿意去升级. 如果是稳定的没有动力升级, 如果依赖变更大, 直接升级父pom. 会使得所有未指定版本号的都为父pom中的版本号. 风险太大. 同事更多会选择自己写版本号自己控制. (找到好的画图软件后画个图吧)
Import Pom
1 | |
优点: 可以在dependencyManagement节点下引入多个import pom依赖. 提供使用.
缺点: 引入的依赖只有里面的dependencyManagement会被合并到当前pom.xml文件
Parent
1 | |
优点: 父pom所有属性都将被当前pom继承(可以覆盖), 包括dependencyManagement和pluginManagement等.
缺点: 只能单继承.
当然, 二者可以结合使用.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!