Spring Cloud Alibaba 0.9.0 升級到 2.1.0 手把手教程
- 2019 年 11 月 26 日
- 筆記
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 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了。