pom文件中的dependencyManagement和dependencies的区别
dependencies
子项目中,自动继承父项目中的相关依赖
dependencyManagement
只是声明依赖,并不实现引入,因此子项目中需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖,并且没有指定版本,才会从父项目中继承该项,并且version和scope都读取父项目中的pom;如果子项目中指定了版本号,那么才会使用子项目中指定的jar版本
下面看一个例子,用idea建立一个parent父项目,然后在parent项目中建立一个child子项目,如下图所示:
在父项目中,在dependencies引入commons-lang3包,如下图所示
然后我们去看下子项目下的依赖情况, 子项目自动引入父项目依赖包,如图所示:
接下来看下dependencyManageMent引入情况,在parent引入mysql-connector-java包,如图所示
查看子项目中的依赖情况,并没有引入mysql-connector-java
在子项目中显示的引入包,但是没有指定版本号,如下图所示
从图中看出,引入进来的版本与父项目声明的版本号一致
dependencies