1. 程式人生 > >基於springboot多模組專案使用maven命令打成war包放到伺服器上執行的問題

基於springboot多模組專案使用maven命令打成war包放到伺服器上執行的問題

首先,大家看到這個問題,可能並不陌生,而且腦子裡第一映像就是使用mava中的clear package 或者 clear install進行打包,然後在專案中的target資料夾下面找到xxx.war,將這個war包放到外接的tomcat伺服器下的webapps下面,最後執行tomcat的bin資料夾下面的startup.bat命令就可以進行訪問了,

起初我也是這樣跟你們一樣的,也這樣做了,但最後tomcat執行startup.bat命令時也正常,沒有報錯,但在瀏覽器中訪問時出現404沒有找到的錯誤,但訪問tomcat主頁面正常,所以第一直覺就是這個專案打成的war包出現了問題,再看看啟動tomcat時列印的內容,如下圖:

再看下webapps資料夾,war包解壓了,但就是沒有執行專案,當時就很苦惱,然後實驗了單模組的專案進行打成war包再放到tomcat執行,結果執行正常,這就更苦惱了,然後再百度+分析了下,網上建議springboot專案打成jar包執行,不建議war包執行,但可能是本人性格問題吧,覺得jar包可以,war包為啥不行,然後問了下群裡大佬,才解決。

解決方法是:

在idea2018中,點選標題欄中的Build--》Build Artifacts,在彈框中選擇build,打成war包後繼續將該war包放入到tomcat中執行startup.bat命令,最後訪問,完美執行成功!

雖然執行成功了,但還是有點苦惱,然後對比了下執行後解壓出來的war包,如下圖:

這是使用maven中的clear install或者clear package執行之後打成war包放到tomcat中解壓出來的目錄

這是使用Build--》Build Artifacts的命令打成war包放到tomcat中解壓出來的目錄

這一對比,我想大家都能夠明白了吧。

但還是感覺那裡不對勁,是否有大佬方便出來給我這個小白進行講解下這兩種方式打出來的war包為什麼會有這麼大的區別???