dependencyManager 和 dependencies的区别
个人理解,如有错误,烦请指正!
我们在使用SpringBoot项目的时候,一般需要继承spring-boot-starter-parent:
然后我们在引入一些SpringBoot官方维护的依赖的时候就可以省去写版本号:
这个功能的实现其实是通过dependencyManager来实现的。
查看spring-boot-starter-parent发现其继承了spring-boot-dependencies,而spring-boot-dependencies中:
那么,dependencyManager 和 dependencies的到底有什么区别呢?
首先,dependencyManager是一种依赖管理的的方式,写在dependencyManager下的依赖都是一种声明,并不会真的引入。
但是,没有写在dependencyManager中的dependencies,不仅会引入到当前的maven项目,也会被子maven项目继承。
使用dependencyManager可以一定程度的方便依赖包版本控制,在子pom中只需要写groupId和artifactId即可,会自动去父pom中查找dependencyManager,
继承version和scope等。
如果写了version,就会按照子pom的版本去引入依赖。
注意: 如果在dependencyManager是不会自动继承父pom中的dependencyManager包含依赖的版本号的。在使用SpringBoot时候尤其注意。