面向对象的思想同样适用于Maven
使用dependencyManagement优势
统一管理项目的版本号,确保应用的各个项目的依赖和版本一致,才能保证测试的和发布的是相同的成果,因此,在顶层pom中定义共同的依赖关系。
同时可以避免在每个使用的子项目中都声明一个版本号,这样想升级或者切换到另一个版本时,只需要在父类容器里更新,不需要任何一个子项目的修改;
如果某个子项目需要另外一个版本号时,只需要在dependencies中声明一个版本号即可。
子类就会使用子类声明的版本号,不继承父类版本号。
两者的区别
dependencies
dependencies即使在子项目中不写该依赖项,子项目也仍然会从父项目中继承该依赖项(全部继承)
dependencyManagement
只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖
如果不在子项目中声明依赖,是不会从父项目中继承下来的
只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom
另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本
总结
dependencies => 管理依赖关系
dependencyManagement => 管理版本
<dependencies>中的jar直接加到项目中,管理的是依赖关系
(如果有父pom,子pom,则子pom中只能被动接受父类的版本)
<dependencyManagement>主要管理版本,对于子类继承同一个父类是很有用的,集中管理依赖版本不添加依赖关系,对于其中定义的版本,子pom不一定要继承父pom所定义的版本

本文介绍了Maven中dependencyManagement与dependencies的区别,详细解析了dependencyManagement的优势,并通过对比帮助理解两者在pom.xml配置中的作用。
2万+

被折叠的 条评论
为什么被折叠?



