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时候尤其注意。

相关