解决jar包依赖:Spring IO platform推出bom

Posted 山高我为峰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决jar包依赖:Spring IO platform推出bom相关的知识,希望对你有一定的参考价值。

名词解释: 
BOM(bill of materials):材料清单,用于解决jar包依赖的好方法。

Spring IO Platform

缘起:Spring起初只专注ioc和aop,现在已发展成一个庞大体系。比如security、mvc等。如此一来,不同模块或者与外部进行集成时,依赖处理就需要各自对应版本号。比如,较新spring与较老的quartz,它们集成就会遇到问题,给搭建和升级带来不便。因此Spring IO Platform应运而生,只要项目中引入了它,外部集成时依赖关系无需版本号。官网的原文如下:“when you do declare a dependency on something that’s part of the Platform, you will now be able to omit the version number.” 
举例如下:

<dependencies>
    <dependency> 
        <groupId>org.springframework</groupId> 
    </dependency>
</dependencies>

Spring IO Platform只是一个pom文件,记录了spring与其他开源项目对应的版本。省去了版本号,也就省去了处理依赖时的问题,因为Spring IO Platform中有最优的版本配置。

Spring相关的BOM

当然SpringSource为了解决这些Jar冲突,推出了各种BOM,当然最著名的就是spring platform io bom,其中最核心的三个是:spring-framework-bom、spring-boot-dependencies、platform-bom。

对于Spring工程来说,直接在pom.xml文件中添加如下配置代码,即可免去管理版本冲突的难题。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-framework-bom</artifactId>
            <version>4.2.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.3.0.M2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>io.spring.platform</groupId>
            <artifactId>platform-bom</artifactId>
            <version>1.1.3.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

参考文章

  1. Introduction to spring io platform


以上是关于解决jar包依赖:Spring IO platform推出bom的主要内容,如果未能解决你的问题,请参考以下文章

解决jar包冲突问题

spring maven项目解决依赖jar包版本冲突方案

用gradle4.4转化spring,发现依赖包integration-0.9.15.jar已经不在

spring + maven +testng 测试常见依赖包问题

spring jar包依赖结构

关于SpringBoot项目打包没有把依赖的jar包一起打包的解决办法