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

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

    
    org.springframework.boot
    spring-boot-starter
    

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

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

    
    org.springframework.boot
    spring-boot-starter-parent
    1.5.4.RELEASE
    

此配置表明父节点是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的方式)。



    
        org.springframework.boot
        spring-boot-dependencies
        1.5.9.RELEASE
        pom
        import
    


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

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


    1.8

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

你可能感兴趣的:(【Maven】)