Java 项目物料清单
什么是物料清单
物料清单 (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 Train | Spring Boot Generation |
|---|---|
| 2025.1.x aka Oakwood | 4.0.x |
| 2025.0.x aka Northfields | 3.5.x |
| 2024.0.x aka Moorgate | 3.4.x |
| 2023.0.x aka Leyton | 3.3.x, 3.2.x |
| 2022.0.x aka Kilburn | 3.0.x, 3.1.x (Starting with 2022.0.3) |
| 2021.0.x aka Jubilee | 2.6.x, 2.7.x (Starting with 2021.0.3) |
| 2020.0.x aka Ilford | 2.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 Version | Spring Cloud Version | Spring Boot Version |
|---|---|---|
| 2023.0.1.0* | Spring Cloud 2023.0.1 | 3.2.4 |
| 2023.0.0.0-RC1 | Spring Cloud 2023.0.0 | 3.2.0 |
组件版本关系
每个 Spring Cloud Alibaba 版本及其自身所适配的各组件对应版本如下表所示:
| Spring Cloud Alibaba Version | Sentinel Version | Nacos Version | RocketMQ Version | Seata Version |
|---|---|---|---|---|
| 2023.0.1.0 | 1.8.6 | 2.3.2 | 5.1.4 | 2.0.0 |
| 2023.0.0.0-RC1 | 1.8.6 | 2.3.0 | 5.1.4 | 2.0.0 |
官方文档只更新到 2023.x 版,但是最新的Spring Cloud Alibaba 2025 是兼容 Spring Cloud 2025 的。
其他文章