背景
创建多模块项目时,相信有部分同学对父模块个子模块的pom文件产生了疑问,子模块是否能自动继承父模块的依赖。这就得讲到dependencyManagement和dependencies的区别了
关于dependencyManagement和dependencies的区别
dependencyManagement
是包版本管理的标签,你可以这么理解,此标签中的所有jar包只是声明,并没有真正的引用
dependencies
此标签内的jar包会被真正的引用
使用方式
由此,我们实际使用时,通常会出现两种方法,
一种是使用dependencyManagement在父项目的pom.xml声明所有子项目使用到的包信息,在子项目中再引用,这种,当我们绝对对某个大项目(父项目)升级某个包时只需改父项目的pom.xml中对应包的版本信息即可,无需一次更改每个子项目。
细心的同学肯定也发现了,我们在父pom中声明包时填写的信息是很全的包含了版本以及额外信息,而在子pom引用时只简单的写了包名,这也是dependencyManagement的一个省心的特性
第二种是使用dependencies,把所有子项目共用的包提取到父项目的pom.xml中,对与每个子项目特别引用的包在子项目pom.xml中引用即可
两种方式没有好坏,看各自的使用场景