Spring Cloud Alibaba 0.9.0 升級到 2.1.0 手把手教程

TIPS

本文基於Spring Cloud Greenwich SR3編寫,理論支持Spring Cloud Greenwich所有版本。

對於非Greenwich版本,請前往 https://github.com/alibaba/spring-cloud-alibaba/wiki/版本說明 查看Spring Cloud與Spring Cloud Alibaba的版本兼容性關係,自行升級到對應的兼容版本。例如:你用的是Spring Cloud Finchley,那麼應使用Spring Cloud Alibaba 2.0.0,以此類推。

最近,Spring Cloud Alibaba已經從Spring Cloud孵化器中孵化成功。孵化成功後的最新版本是2.1.0。這一節來詳細探討如何將Spring Cloud Alibaba從0.9.0升級到2.1.0。

從0.9.0開始,Maven的Group id發生了變化!

•0.9.0的Group id是 org.springframework.cloud•0.9.0以上的版本是 com.alibaba.cloud

這看起來還挺嚇人的,而且此前也引發了一些吐槽。其實這主要是由於Spring Cloud考慮簡化自己的Release Train(即:Spring Cloud自身的版本管理),於是修改了發佈政策:非Spring Cloud團隊維護的Spring Cloud的子項目,一律使用自己的GroupId即可,不再強制使用 org.springframework.cloud 。

TIPS

詳見:https://spring.io/blog/2019/07/24/simplifying-the-spring-cloud-release-train[1]

Spring Cloud Alibaba 0.9.0 升級到 2.1.0 手把手教程

從功能上講,Spring Cloud Alibaba 2.1.0和0.9.0區別並不大,所以升級還是比較輕鬆的。下面列出升級的具體步驟:

一、升級依賴管理器

<dependency>
<groupid>org.springframework.cloud/<groupid>
<artifactid>spring-cloud-alibaba-dependencies/<artifactid> <version>0.9.0.RELEASE/<version> <type>pom/<type> <scope>import/<scope>/<dependency>

修改為:

<dependency>
<groupid>com.alibaba.cloud/<groupid>
<artifactid>spring-cloud-alibaba-dependencies/<artifactid>
<version>2.1.0.RELEASE/<version>
<type>pom/<type>
<scope>import/<scope>
/<dependency>

其實就是改個groupId以及version。

二、升級Starter

將Spring Cloud Alibaba所有相關的Starter依賴(即以 spring-cloud-starter-alibaba- 開頭的所有依賴),的groupId,全部更換成com.alibaba.cloud 。

例如:將:

<dependency>
<groupid>org.springframework.cloud/<groupid>
<artifactid>spring-cloud-starter-alibaba-nacos-discovery/<artifactid>
/<dependency>

修改為:

<dependency>
<groupid>com.alibaba.cloud/<groupid>
<artifactid>spring-cloud-starter-alibaba-nacos-discovery/<artifactid>

/<dependency>

三、升級Server軟件版本

由於Spring Cloud Alibaba使用了Nacos、Sentinel Dashboard、RocketMQ,所以還得升級這三款軟件的Server端。

TIPS

普及一個技巧:可根據客戶端版本,去下載相同版本/兼容版本的Server端。

舉個例子:

•通過分析,可以發現 spring-cloud-starter-alibaba-nacos-discovery 使用了Nacos Client 1.1.1,所以下載Nacos Server 1.1x 肯定是兼容的。

當然,其實在官方文檔 https://github.com/alibaba/spring-cloud-alibaba/wiki/版本說明

分別下載:

•Nacos Server 1.1.x

•Sentinel Dashboard 1.6.x

•RocketMQ 4.4.x(筆者經過測試,使用RocketMQ 4.5.1也是OK的)

四、修正編譯報錯

如果你使用了原Spring Cloud Alibaba的一些類,那麼升級後,很可能會報錯。這主要是因為,Spring Cloud Alibaba的包名結構也發生了變化。原先的包結構是 org.springframework.cloud.xxx ,升級後包名也改成了com.alibaba.cloud.xxx 。

重新導一下包一下就OK了。


分享到:


相關文章: