文章目录

1. 版本说明2. 版本依赖关系(推荐使用)3. 用脚手架快速生成微服务的pom.xml

本文描述如何确定微服务项目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本。

1. 版本说明

我们知道Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本选择一致性非常重要。在选择Spring Boot和Spring Cloud版本时,需要考虑到两者之间的关系以及项目的具体需求。

首先,Spring Boot和Spring Cloud有密切的联系。Spring Boot是Spring Cloud的基础,版本选择应该先确定Spring Boot的版本,然后再选择与之兼容的Spring Cloud版本。

2. 版本依赖关系(推荐使用)

三者的版本选择可以参考:Spring Cloud Alibaba版本选择参考。

其他版本参考:https://sca.aliyun.com/zh-cn/docs/2022.0.0.0/overview/version-explain(先选择Spring Boot版本)

由于 Spring Boot 3.0,Spring Boot 2.7~2.4 和 2.4 以下版本之间变化较大,目前企业级客户老项目相关 Spring Boot 版本仍停留在 Spring Boot 2.4 以下,为了同时满足存量用户和新用户不同需求,社区以 Spring Boot 3.0 和 2.4 分别为分界线,同时维护 2022.x、2021.x、2.2.x 三个分支迭代。如果不想跨分支升级,如需使用新特性,请升级为对应分支的新版本。 为了规避相关构建过程中的依赖冲突问题,我们建议可以通过 云原生应用脚手架 进行项目创建。

2022.x 分支 适配 Spring Boot 3.0,Spring Cloud 2022.x 版本及以上的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用*标记): (注意,该分支 Spring Cloud Alibaba 版本命名方式进行了调整,未来将对应 Spring Cloud 版本,前三位为 Spring Cloud 版本,最后一位为扩展版本,比如适配 Spring Cloud 2022.0.0 版本对应的 Spring Cloud Alibaba 第一个版本为:2022.0.0.0,第个二版本为:2022.0.0.1,依此类推)

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version2022.0.0.0*Spring Cloud 2022.0.03.0.22022.0.0.0-RC2Spring Cloud 2022.0.03.0.22022.0.0.0-RC1Spring Cloud 2022.0.03.0.0

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

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version2021.0.5.0*Spring Cloud 2021.0.52.6.132021.0.4.0Spring Cloud 2021.0.42.6.112021.0.1.0Spring Cloud 2021.0.12.6.32021.1Spring Cloud 2020.0.12.4.2

2.2.x 分支 适配 Spring Boot 为 2.4,Spring Cloud Hoxton 版本及以下的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用*标记):

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version2.2.10-RC1*Spring Cloud Hoxton.SR122.3.12.RELEASE2.2.9.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE2.2.8.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE2.2.7.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE2.2.6.RELEASESpring Cloud Hoxton.SR92.3.2.RELEASE2.2.1.RELEASESpring Cloud Hoxton.SR32.2.5.RELEASE2.2.0.RELEASESpring Cloud Hoxton.RELEASE2.2.X.RELEASE2.1.4.RELEASESpring Cloud Greenwich.SR62.1.13.RELEASE2.1.2.RELEASESpring Cloud Greenwich2.1.X.RELEASE2.0.4.RELEASE(停止维护,建议升级)Spring Cloud Finchley2.0.X.RELEASE1.5.1.RELEASE(停止维护,建议升级)Spring Cloud Edgware1.5.X.RELEASE

组件版本关系 每个 Spring Cloud Alibaba 版本及其自身所适配的各组件对应版本如下表所示(注意,Spring Cloud Dubbo 从 2021.0.1.0 起已被移除出主干,不再随主干演进):

Spring Cloud Alibaba VersionSentinel VersionNacos VersionRocketMQ VersionDubbo VersionSeata Version2022.0.0.01.8.62.2.14.9.4~1.7.02022.0.0.0-RC21.8.62.2.14.9.4~1.7.0-native-rc22021.0.5.01.8.62.2.04.9.4~1.6.12.2.10-RC11.8.62.2.04.9.4~1.6.12022.0.0.0-RC11.8.62.2.1-RC4.9.4~1.6.12.2.9.RELEASE1.8.52.1.04.9.4~1.5.22021.0.4.01.8.52.0.44.9.4~1.5.22.2.8.RELEASE1.8.42.1.04.9.3~1.5.12021.0.1.01.8.31.4.24.9.2~1.4.22.2.7.RELEASE1.8.12.0.34.6.12.7.131.3.02.2.6.RELEASE1.8.11.4.24.4.02.7.81.3.02021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE 1.8.01.4.14.4.02.7.81.3.02.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE1.8.01.3.34.4.02.7.81.3.02.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE1.7.11.2.14.4.02.7.61.2.02.2.0.RELEASE1.7.11.1.44.4.02.7.4.11.0.02.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE1.7.01.1.44.4.02.7.30.9.02.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE1.6.31.1.14.4.02.7.30.7.1

3. 用脚手架快速生成微服务的pom.xml

简单起见也可以使用阿里巴巴提供的云原生应用脚手架

填写项目的基本信息

选择了3个组件,一个来自Spring Cloud,一个来自Spring Cloud Alibaba,所以会帮我们在pom.xml文件中引入2个框架的依赖。

可以选择下载代码或在线浏览代码。我这里把pom.xml文件的内容贴出来。

pom原始内容如下:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.tigerhhzz

demo

0.0.1-SNAPSHOT

pom

demo

Demo project for Spring Boot

1.8

UTF-8

UTF-8

2.7.6

2021.0.5.0

2021.0.5

demo-start

demo-web

demo-service

org.springframework.boot

spring-boot-starter-web

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

org.springframework.cloud

spring-cloud-starter-netflix-eureka-client

org.springframework.boot

spring-boot-starter-test

test

org.springframework.cloud

spring-cloud-dependencies

${spring-cloud.version}

pom

import

org.springframework.boot

spring-boot-dependencies

${spring-boot.version}

pom

import

com.alibaba.cloud

spring-cloud-alibaba-dependencies

${spring-cloud-alibaba.version}

pom

import

com.tigerhhzz

demo-start

0.0.1-SNAPSHOT

com.tigerhhzz

demo-web

0.0.1-SNAPSHOT

com.tigerhhzz

demo-service

0.0.1-SNAPSHOT

org.apache.maven.plugins

maven-compiler-plugin

3.8.1

1.8

1.8

UTF-8

org.springframework.boot

spring-boot-maven-plugin

${spring-boot.version}

com.tigerhhzz.DemoApplication

true

repackage

repackage

由于有些内容我们暂时用不到,这里主要是为了帮我们解决版本的选择问题,所以下面我们只保留了元素,且强制给子模块添加了lombok、spring测试框架,所以最终的父项目的pom.xml内容如下:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.firefish

firefish

1.0.0

pom

FireFish

火鱼微服务项目

1.8

UTF-8

UTF-8

2.7.6

2021.0.5.0

2021.0.5

org.projectlombok

lombok

true

org.springframework.boot

spring-boot-starter-test

test

org.springframework.cloud

spring-cloud-dependencies

${spring-cloud.version}

pom

import

org.springframework.boot

spring-boot-dependencies

${spring-boot.version}

pom

import

com.alibaba.cloud

spring-cloud-alibaba-dependencies

${spring-cloud-alibaba.version}

pom

import

org.apache.maven.plugins

maven-compiler-plugin

3.8.1

1.8

1.8

UTF-8

org.springframework.boot

spring-boot-maven-plugin

${spring-boot.version}

com.firefish.FireFishApplication

true

repackage

repackage

至此由于pom.xml的建立,微服务的父工程已经建立好!!

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: