spring-boot中关于Maven依赖管理的一个问题

背景: 今天在使用spring boot集成redis的时候,发现一个现象对于spring boot的其他pom依赖都可以不配置version版本号

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    </dependency>

但是可以获取到相应的版本jar包,这个是为什么?

开始的时候以为不配置版本号,就会从镜像仓库中获取最新的release版本,其实不是这样的。
是从父pom继承过来的。在spring boot的pom配置中会有以下配置:

    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.4.RELEASE</version>
    </parent>

此配置表明父节点是spring-boot-starter-parent。进入父节点的pom发现,还有一个父pom ,spring-boot-dependencies
在此pom中配置了很多需要依赖的jar的pom,所以即使在项目的pom文件中不配置version信息也是可以的,它们会从spring-boot-dependencies中继承过来。

问题原因找到了,那么回归到spring boot的特性上来。

在spring boot的 13.2 Maven章节中有介绍到,spring boot是如何进行maven管理的。

文中有提到 Inheriting the starter parent,从starter parent处继承过来。还有如果不继承可以使用配置依赖管理的方式(使用scope=import的方式)。

<dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>1.5.9.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
</dependencies>
</dependencyManagement>

由此可以看出,pom之间的继承关系。根依赖就是 spring-boot-dependencies。

在项目的pom中有时候会出现这个属性配置:

<properties>
    <java.version>1.8</java.version>
</properties>

因为 spring-boot-starter-parent中使用的是高稳定性和兼容性的jdk1.6,可以使用上述的配置完成1.8的配置。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值