一、Maven dependencyManagement VS dependencies
1.1、概述
dependencyManagement是Maven中提供的一种管理依赖版本号的方式,这个配置通常会在一个组织或者项目最顶层的父pom中看到,使用pom.xml中的dependencyManagement元素,可以让所有的子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用这个标签中指定的版本号。
这样做的好处是,如果有多个项目都引用同样的依赖,则可以避免在每个子项目中都声明一个版本号,这样当想升级或者切换到另一个版本时,只需要在顶层父容器里修改版本即可,而不需要一个一个子项目的修改,另外如果某个子项目需要使用另外一个版本,只需要声明自己的version版本就行。
注意事项:
(1)dependencyManagement只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖;
(2)如果不在子项目中声明依赖,是不会从父项目中继承下来的。只有在子项目中写了该依赖项,并且没有指定具体版本才会从父项目中继承该项,并且version和scope都读取自父pom;
(3)如果子项目中指定了版本号,那么会使用子项目中指定的jar版本;