SpringBoot依赖管理
依赖管理
我们创建一个SpringBoot项目,导入了Web依赖(省略步骤)。我们可以看到每个SpringBoot项目中的pom.xml
都会有一个父项目parent
1 | <parent> |
这个父项目就是做依赖管理的。例如我们可以发现我导入的web,test依赖是没有写版本号的。
1 | <dependencies> |
但是却导入2.4.1了的版本依赖。这是为什么呢??
我们点开当前父项目spring-boot-starter-parent
发现它也存在一个父项目spring-boot-dependencies
点开查看。
我们发现这里声明了许多属性,并且还使用了dependencyManagement
对依赖进行了管理。
我们搜索spring-boot-starter-web
可以看到这里对其依赖进行了管理,版本为我们先前看到的2.4.1
搜索logback
也能看到与我们的导入的版本号是一致的。
spring-boot-starter-parent
的父项目spring-boot-dependencies
几乎声明了所有开发中常用的依赖的版本号,被称为自动版本仲裁机制。
但是如果我们不想使用这个版本的依赖怎么修改呢??例如我们导入mysql-connector-java
导入的是spring-boot-dependencies
中声明的mysql版本。
如果要修改成使用5.1.32的mysql驱动。则可以version标签指定版本为5.1.32
1 | <dependency> |
或者在当前项目中的pom.xml。在properties标签中声明mysql.versioin
(与spring-boot-dependencies中的保持一致)值为5.1.32
这两种方式都可以。
总结
- 每个SpringBoot项目都有一个父项目
spring-boot-starter-parent
。它又有一个父项目spring-boot-dependencies
这里声明管理了绝大部分的依赖版本。被称为自动版本仲裁机制。 - 因此引入版本仲裁依赖默认都可以不写版,本引入非版本仲裁的jar,要写版本号。
- 修改默认版本号可以直接在下面声明version版本,或者 查看
spring-boot-dependencies
properties里面规定当前依赖的版本用的 key。在当前项目里面重写配置properties的key值。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kylin!
评论