创建一个 Spring Boot 项目时:或者是干脆从 https://start.spring.io/ 在线生成 Spring Boot 项目:
我们都会发现 spring-boot-starter-parent 的身影
首先我们可以在idea中ctrl+右键点开父依赖spring-boot-starter-parent
接着ctrl+右键点击spring-boot-dependencies
来到该文件下
可以看见在spring-boot-dependencies里面看到声明了很多第三方依赖的版本。
继续往下滑可以看见使用了dependencyManagement标签,即Maven中的元素提供了一种管理依赖版本号的方式。在dependencyManagement元素中声明所依赖的jar包的版本号等信息,即对这些版本号进行版本锁定,那么所有当子项目再次引入此依赖jar包时则无需显式的列出版本号。Maven会沿着父子层级向上寻找拥有dependencyManagement 元素的项目,然后使用它指定的版本号。而这些依赖的版本号,就是上一张图片里面的properties中对应的版本号,也就是被锁定的版本号
所以例如:在子项目pom文件中需要SpringSecurity依赖
在父项目中ctrl+右键点开父依赖spring-boot-starter-parent->点开spring-boot-dependencies中我们可以看见含有对应的依赖
那么在子项目pom文件引入的时候便可以省略其版本号(dependencyManagement中定义的只是依赖的声明,并不是实现引入,所以子项目需要重新声明需要用的依赖)
但是也不是所有导入的依赖都可以省略版本号,其次如果不想使用dependencyManagement中锁定的版本号,也可以直接在子项目的pom文件中的对应的依赖下加版本号,例如上面的例子直接对子项目中的SpringSecurity依赖加版本号也是可以的。