版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
不知道大家在Spring Boot 项目中引入依赖的时候有没有注意到一个问题:引入的依赖不指定版本号,比如下面这样,但是也可以下载到对应的jar 包。
<!-- 添加对JDBC 的支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
- 1
- 2
- 3
- 4
- 5
其实在Spring Boot 项目下的pom.xml
文件中通常都会有一个<parent>
标签,用来指定继承的父pom
,如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/>
</parent>
- 1
- 2
- 3
- 4
- 5
- 6
点进去后会发现spring-boot-starter-parent
也继承自一个pom
,如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
- 1
- 2
- 3
- 4
- 5
- 6
再点进去就可以看到结果了,顶级的pom
文件的坐标如下,通过<artifactId>
标签我们应该知道这个pom
文件时用来管理依赖版本号的。
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.10.RELEASE</version>
<packaging>pom</packaging>
- 1
- 2
- 3
- 4
在这个pom.xml
中定义了很多的<propertie>
标签用来管理引入依赖和插件的版本。
在引入依赖的时候,即使你不指定依赖的版本,Spring Boot 也会通过Maven 的继承关系,引入依赖的版本,从而完成版本的统一。
当然你也可以不使用Maven继承的依赖版本,只需要在引入依赖的时候指定具体的依赖版本即可。