1. 程式人生 > >【小捕快上線】Springboot在2.1.5版本下的相容問題排查

【小捕快上線】Springboot在2.1.5版本下的相容問題排查

問題出現流程記錄:用Eclipse4.7.2版本直接建立了一個Springboot,在建的過程中直接選的是2.1.5的版本,裡面只是選擇了web、web-service,無奈寫好controller之後,都沒有走到controller程序就結束了,掉到坑裡了嗎?

 

下面是爬坑的過程:

1、先確定程式碼過程,用最簡單的demo,提示Start Application in xx S,程序自動關閉了

2、mvn update多次,強制更新下載,還是不行

3、開始查是不是tomcat和2.1.5的版本有相容問題?還是Eclipse的環境有啥問題(Eclipse中裝了sts的外掛,更新了外掛之後還是不行,從官網上查了Eclipse最新版本,發現竟然每一個Eclipse版本都有其對應的sts版本,想到是否可能是工具的相容問題),因此接下來用不同的方式進行打包和建立工程以驗證猜想?因為之前用2.0.6Release的Springboot版本建立的工程執行是成功的(半年前的專案),將有問題的工程中的pom檔案中的Springboot版本改成2.0.6Release就能夠執行成功

4、嘗試debug,配置的過程中想到了試一下mvn直接clean install試試打出來的jar包是否可以,因為放到伺服器上也是通過這種方式打包,之後執行通過java -jar xx.jar,事實證明,這樣是可以的,到目前為止還沒有想到是什麼問題

5、因為本地還有IDEA,直接建一個很簡單的工程之後,放入controller,之後執行成功

6、這裡捋出來幾個方向:

(1)可能是工具問題(可能版本不夠新,有相容問題,STS的支援+最新版本的Springboot有問題)

(2)2.0.6Release版本執行和2.1.5Release版本執行的時候,依賴的jar包有什麼不同,檢視之後發現jar包版本不同 —— 同時查到一個關於使用阿里映象導致下載庫失效的問題,嘗試進行了庫的替換(但因為替換過程中字元編碼可能存在一些問題,導致本地解析settings檔案有問題,因此直接使用了預設的settings.xml檔案,反而2.1.5版本的好用了)

至此就能夠完全明確了,發現IDEA和Eclipse中的mvn的settings路徑設定是不同的

 

所以遇到這種環境的坑就是要:

(1)先mvn update,多換幾種不同的mirror映象下載庫

(2)通過不同的工具對比,確定唯一可能的變化值,在此基礎上繼續分析

 

mvn的打包命令為:進入到目標工程根目錄下,通過mvn clean install,成功後會提示Build Success

執行時,進入到工程目錄的根目錄的target目錄,通過java -jar xxx.jar   

 

基於mirror的配置的,可以自行百度,一般會有aliyun的,還有maven官方庫配置的~

 

另外,注意:maven的路徑配置的,最好是中間沒有空格的,比如:Program Files,這個Program Files的空格在很多情況下比較坑,所以儘量