为什么在SpringBoot+maven的项目中,所引入的依赖包可以不指定依赖的版本号?

Posted 西域蓝狼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么在SpringBoot+maven的项目中,所引入的依赖包可以不指定依赖的版本号?相关的知识,希望对你有一定的参考价值。

当在Springboot项目中引入了spring-boot-starter-parent,则可以不用引入依赖包版本号,比如:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

因为它会默认提供常用依赖包的版本号,也有助于统一版本号。如果非要想自己填写版本号也是可以的,这样会覆盖官方版本号(如果是新手,个人建议还是不要随便修改依赖包版本号,免得版本号不兼容)。
接下来,我们看下spring-boot-starter-parent的继承关系就能明白,为什么使用它之后就可以不填依赖包版本号。首先看下它的pom文件:
打开前:

 

打开后:

 

打开之后会发现spring-boot-starter-parent还有一个父依赖:spring-boot-dependencies。然后打开这个pom文件之后,会发现这个里面已经有很多常用的带有版本号的依赖包,如:

 

但是springboot提供官方统一的版本管理之外,还让开发人员自行管理依赖包版本。如果想要自行管理版本,则建议使用dependency management来代替,然后设置jdk,编码格式,各种依赖包等版本号就可以。

 

以上是关于为什么在SpringBoot+maven的项目中,所引入的依赖包可以不指定依赖的版本号?的主要内容,如果未能解决你的问题,请参考以下文章

Maven多模块项目,框架SSM怎么改成springboot的?

从 SpringBoot 项目的属性文件中获取 Maven basedir

初学springboot, 如何快速使用maven搭建springboot项目呢

SpringBoot.10.IDEA中如何快速复制一个Maven构建的SpringBoot项目

导入到idea里的springboot/maven项目不显示为maven项目

IDEA中Maven项目添加或识别至Springboot的Run Dashboard控制面板