Maven之Spring BOM(Bill of Materials)
参考文章:
https://blog.csdn.net/blueheart20/article/details/81011805
在Maven项目中,不同的第三方依赖包可以直接或者间接依赖于Spring,这些Spring的版本各有不同,则在项目中容易产生版本的冲突。
Spring不同模块或者与外部进行集成时,依赖处理就需要各自对应版本号。它们的集成经常会遇到问题,给搭建和升级带来不便。
BOM是由Maven提供的功能,用以统一间接或者直接依赖的类库版本,强制某个类库使用某一个统一的版本。SpringSource为了解决这些Jar冲突,推出了各种BOM,最著名的就是spring platform io bom,其中最核心的三个是:spring-framework-bom、spring-boot-dependencies、platform-bom。
在maven的pom.xml中无需指定具体的类库版本,直接使用,即默认使用bom中指定的版本。
# 项目中可以这么用
<properties>
<spring.version>5.3.10</spring.version>
<spring.boot.version>2.5.5</spring.boot.version>
<spring.platform.version>Cairo-SR8</spring.platform.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-framework-bom -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${spring.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--一般项目用上面这个进行管理jar包就行了 下面的是boot项目使用的-->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.3.0.M2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.spring.platform/platform-bom -->
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>${spring.platform.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>