为什么springboot项目的pom.xml引入依赖不需要加版本号

前言

之所以springboot项目pom.xml中添加依赖不需要添加版本号,是springboot开发团队,为了用户开发中发生依赖冲突而考虑的,项目中会自动配置当前springboot的版本和其他依赖的兼容版本号。

具体我们看下pom.xml中的代码
为什么springboot项目的pom.xml引入依赖不需要加版本号_第1张图片
每一个springboot项目都会一个父工程spring-boot-starter-parent,该工程中,通过描述信息,可以看到是为应用提供依赖和插件管理的,浏览一遍后,可以发现,这个pom.xml中定义了一些插件管理,项目的编码,jdk版本,编译的jdk版本,开发人,lisence等信息,但是并没有依赖管理的信息;而这些依赖管理的信息在它的父工程spring-boot-dependencies中定义。
为什么springboot项目的pom.xml引入依赖不需要加版本号_第2张图片
接下来,我们看一下spring-boot-dependencies的pom.xml
为什么springboot项目的pom.xml引入依赖不需要加版本号_第3张图片
为什么springboot项目的pom.xml引入依赖不需要加版本号_第4张图片
在这个pom.xml中我们可以看到两个重要的标签propertiesdependencyManagement。标签properties中定义依赖的版本号,标签dependencyManagement中定义好了每一个依赖对应的和当前springboot版本匹配的依赖版本号。
简单介绍一下标签properties和dependencyManagement

properties标签
可以定义一些常量,定义的常量可以在pom的其他标签中进行引用
dependencyManagement标签
提供了一种管理依赖版本号的方式,在dependencyManagement标签中声明了版本号的依赖,在其子项目中,当子项目引入该依赖后,不需要添加版本号,而是会自动找到dependencyManagement中定义的版本号来使用。需要注意的是,在dependencyManagement中定义的只是依赖的声明,并不实现引入,因此子项目需要显式的声明需要用的依赖,才能使用;子项目若显式的声明了自己的版本号,就会使用自己的版本号,但是一般情况下不建议自己声明,自己声明的版本可能会和当前的springboot版本冲突。

你可能感兴趣的:(SpringBoot,spring,boot)