什么是物料清单

物料清单 (Bill of Materials, BOM) 是 Maven 的标准功能,提供集中化的依赖版本管理,确保所有模块使用兼容的版本,消除版本冲突并简化依赖管理。使用 BOM 的具有以下优势:

  • 版本一致性:确保所有模块使用兼容版本
  • 简化依赖管理:无需为单个模块指定版本
  • 轻松升级:只需更改 BOM 版本即可升级所有依赖
  • 减少 POM 体积:更清晰、更易读的依赖声明
  • 冲突预防:避免传递依赖之间的版本冲突

常用物料清单

框架之间有版本依赖关系,如果 Spring Cloud 和 Spring Boot 或者 Alibaba 系和 Spring 系 的版本不对,容易产生不可意料的问题。

以下是我在开发中项目常用框架物料清单,基于JDK 17+,在追求最新技术的同时确保框架之间版本兼容。(旧版本JDK建议停留在 Spring Boot 2.7.x 和 Spring Cloud 2021.0.x )

<properties>
    <spring-boot.version>3.5.8</spring-boot.version>
    <spring-data.version>2025.0.6</spring-data.version>
    <spring-cloud.version>2025.0.0</spring-cloud.version>
    <spring-cloud-alibaba.version>2025.0.0.0</spring-cloud-alibaba.version>
    <mybatis-plus.version>3.5.15</mybatis-plus.version>
	<dubbo.version>3.3.6</dubbo.version>
    <hutool.version>5.8.42</hutool.version>
	<spring-ai.version>1.0.3</spring-ai.version>
	<spring-ai-alibaba.version>1.0.0.4</spring-ai-alibaba.version>
</properties>

<dependencyManagement>
	<dependencies>
		<!-- spring boot 依赖 -->
		<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies -->
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-dependencies</artifactId>
		    <version>${spring-boot.version}</version>
		    <type>pom</type>
		    <scope>import</scope>
		</dependency>
		<!-- spring data 依赖 -->
		<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-bom -->
		<dependency>
		    <groupId>org.springframework.data</groupId>
		    <artifactId>spring-data-bom</artifactId>
		    <version>${spring-data.version}</version>
		    <type>pom</type>
		    <scope>import</scope>
		</dependency>
		<!-- spring cloud 依赖 -->
		<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
		<dependency>
		    <groupId>org.springframework.cloud</groupId>
		    <artifactId>spring-cloud-dependencies</artifactId>
		    <version>${spring-cloud.version}</version>
		    <type>pom</type>
		    <scope>import</scope>
		</dependency>
		<!-- spring cloud alibaba 依赖 -->
		<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-alibaba-dependencies -->
		<dependency>
		    <groupId>com.alibaba.cloud</groupId>
		    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
		    <version>${spring-cloud-alibaba.version}</version>
		    <type>pom</type>
		    <scope>import</scope>
		</dependency>
		<!-- spring ai 依赖 -->
		<!-- https://mvnrepository.com/artifact/org.springframework.ai/spring-ai-bom -->
		<dependency>
		    <groupId>org.springframework.ai</groupId>
		    <artifactId>spring-ai-bom</artifactId>
		    <version>${spring-ai.version}</version>
		    <type>pom</type>
		    <scope>import</scope>
		</dependency>
		<!-- spring ai alibaba 依赖 -->
		<!-- https://mvnrepository.com/artifact/com.alibaba.cloud.ai/spring-ai-alibaba-bom -->
		<dependency>
		    <groupId>com.alibaba.cloud.ai</groupId>
		    <artifactId>spring-ai-alibaba-bom</artifactId>
		    <version>${spring-ai-alibaba.version}</version>
		    <type>pom</type>
		</dependency>
		<!-- mybatis-plus 相关 -->
		<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-bom -->
		<dependency>
		    <groupId>com.baomidou</groupId>
		    <artifactId>mybatis-plus-bom</artifactId>
		    <version>${mybatis-plus.version}</version>
		    <type>pom</type>
		    <scope>import</scope>
		</dependency>
		<!-- apache dubbo 依赖 -->
		<!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-bom -->
		<dependency>
		    <groupId>org.apache.dubbo</groupId>
		    <artifactId>dubbo-bom</artifactId>
		    <version>${dubbo.version}</version>
		    <type>pom</type>
		</dependency>
		<!-- hutool 工具类 -->
		<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-bom -->
		<dependency>
		    <groupId>cn.hutool</groupId>
		    <artifactId>hutool-bom</artifactId>
		    <version>${hutool.version}</version>
		    <type>pom</type>
		    <scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

参考

  • Spring Cloud 与 Spring Boot 版本兼容性
Release TrainSpring Boot Generation
2025.1.x aka Oakwood4.0.x
2025.0.x aka Northfields3.5.x
2024.0.x aka Moorgate3.4.x
2023.0.x aka Leyton3.3.x, 3.2.x
2022.0.x aka Kilburn3.0.x, 3.1.x (Starting with 2022.0.3)
2021.0.x aka Jubilee2.6.x, 2.7.x (Starting with 2021.0.3)
2020.0.x aka Ilford2.4.x, 2.5.x (Starting with 2020.0.3)
  • Spring Cloud Alibaba 与 Spring Cloud 版本关系

适配 Spring Boot 3.2,Spring Cloud 2023.x 版本及以上的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用 * 标记):

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version
2023.0.1.0*Spring Cloud 2023.0.13.2.4
2023.0.0.0-RC1Spring Cloud 2023.0.03.2.0

组件版本关系

每个 Spring Cloud Alibaba 版本及其自身所适配的各组件对应版本如下表所示:

Spring Cloud Alibaba VersionSentinel VersionNacos VersionRocketMQ VersionSeata Version
2023.0.1.01.8.62.3.25.1.42.0.0
2023.0.0.0-RC11.8.62.3.05.1.42.0.0

官方文档只更新到 2023.x 版,但是最新的Spring Cloud Alibaba 2025 是兼容 Spring Cloud 2025 的。