idea使用Alibaba Cloud Toolkit部署spring boot項目到Linux服務器

spring boot2 打成jar(war)包併發布到Linux服務器       1:包含發佈和取消發佈    2:多模塊(聚合工程)jar,war包部署)

關於打包方式各種方式都可以,具體方式包括idea自帶的maven插件打包,或者命令打包,或者其他工具比如eclipse打包,這裏默認你已經打包ok了,這裏也是主要演示jar包的發佈和取消發佈(注意:不是講jar包放到Linux某個目錄下,直接運行java -jar xx.jar能夠正常啓動就是說明是發佈成功的喲,因爲外網依然不能正常訪問,項目接口還是不能正常被訪問,必須以能夠訪問接口爲準).

 

服務器版本我的是Linux centos7.5,spring boot2.x,比如我打包是配置文件配置的是8081端口,那麼需要服務器開放8081端口,注意如果Linux命令操作來開放8081端口號需要權限,如果是雲服務器(比如阿里雲,華爲雲)可以直接使用控制面板進行開放,顯得簡單有效(當然也需要權限啦).

90後的老鐵直接使用Xftp或者Xshell比較科學(其他操作工具也行)

========================傳統部署===================================

步驟1:上傳jar包到某個目錄,比如/home/xinzuo/app

 

 步驟2:進入目錄

cd /home/xinzuo/app

 步驟3:持久啓動(就是退出了賬號,關閉了連接工具依然可以後臺運行) 

nohup java -jar lvyou-0.0.1-SNAPSHOT.jar  > LinuxLvyouSpringboot.log 2>&1 &

 其中LinuxLvyouSpringboot.log是我爲這個項目起的日誌名稱而已,因爲項目配置了日誌的,可以理解爲這個是全局的日誌.如果你日誌文件寫好了日誌路徑就直接nohup java -jar lvyou-0.0.1-SNAPSHOT.jar即可,不需要指定後面的亂七八糟的參數

如果正常啓動,會返回對應進程號,比如 [1] 13717,此時表示發佈成功,可以去測試一下項目首頁,接口等可以訪問不,一般到這步了基本上是可以算正常發佈了.

步驟4:關閉已經發布的項目,查看端口(比如你配置的是8081)佔用並關閉進程(確認一下)---使用關閉進程的方式關閉項目的運行

netstat -lnp|grep 8081

服務器顯示進程詳情如下:
tcp6       0      0 :::8081                 :::*                    LISTEN      13717/java

 步驟5:關閉進程的方式關閉jar包的運行(kill -9 這個破命令關閉過於簡單粗暴,dev管不了那麼多,kill了再說,kill錯了就掛了)

kill -9 13717

 確認關閉成功與否很多方式,簡單粗暴的就是直接訪問項目接口看能訪問不,或者使用Linux命令,根據您佬的喜好自己決定.

完整示例

======================1秒高速吹牛部署====================================

 敲黑板-------------------------------------------------------------------------------------------------------

 Linux基本命令,這裏提一嘴,後面的使用上 針對jar項目,一般是關閉掉jar所在的端口號所在的進程ID,來關閉springboot的jar項目,和war包部署在tomcat直接覆蓋就行了不一樣,jar包需要先執行關閉,再部署,直接部署會報錯端口衝突,比如獲取8112所在的端口號並關閉對應線程ID(前提是8112是跑的你的jar包項目,不然都端口都沒有跑項目也會報錯)

netstat -lnp | grep 8112 | awk '{print $7}' | tr '/' ' ' | awk '{print $1}' | xargs kill -9

 關閉後執行重新部署命令腳本

nohup java -jar xxl-job-executor.jar

  敲黑完板了----------------------------------------------------------------------------------------------------

經過傳統部署,雖然部署OK,但是人生苦短,每次修改完代碼後都要重複上面的操作,你哪有時間去勾搭前端小姐姐,UI小妹妹之類的,

那麼此時阿里巴巴爲了解決這個問題,早就幫你想要好了,百度Alibaba Cloud Toolkit這個插件,當然idea作爲java最帥氣的,最懂你的編輯器直接在插件庫下載就行了,eclipse我不是很清楚,估計也有,畢竟可愛的人都用idea,廢話不多說了,你直接查考下面的官方文檔得了

https://help.aliyun.com/document_detail/108590.html?spm=a2c4g.11186623.2.18.11f14c07TQAbdg

當然我自己記錄還是會寫一個自己部署過的作爲留念.

1:安裝好插件,安裝OK後會在底部有個狀態欄的(沒有的話可以設置現實出來,這不是重點)

2:配置服務器,點擊有個添加 Add 的按鈕(沒有特殊說明的默認就行了)

 

3:部署應用(點擊項目右鍵)

 上圖的Linux配置命令(nohup java -jar lvyou-0.0.1-SNAPSHOT.jar  > LinuxLvyouSpringboot.log 2>&1 &   這個命令的解釋請看上文或者百度一下 或者看官方 https://yq.aliyun.com/articles/665693)

 配置到這裏貌似基本上OK了,接下來當你點擊run時,如果出現打包報錯,哦豁,此時可能有坑沒有踩完(因爲單元測試可能報錯導致無法打包,忽略就行了,不需要問爲什麼,說白了就是單元測試如果有的測試後修改了代碼,但是不影響項目運行,那麼項目打包的時候不需要關係單元測試就行了,當然最理想的是單元測試也是好的,不影響打包,現實就是往往不理想,總而言之,按着做問題不大)

 如果run成功了,控制檯會有相應提示,那麼直接訪問一下你的服務器的接口測試看能夠訪問不,能夠的話,那麼恭喜你

run成功會出現上面的按鈕,那麼從此就一次部署,隨時發佈,點擊它就發佈了.(注意:如果修改了配置文件或者重要文件,發佈前建議使用maven  clean一下,並且把錯誤的log刪除)

不然容易報錯  There is insufficient memory for the Java Runtime Environment to continue......

 上傳到服務器併發布成功(至於運行與否還是用命令檢查一下或者看哈服務器日誌保險一點)如圖

 檢查發佈成功沒有(一般只要沒有什麼大問題以後都是點一下idea右上角按鈕就行了),可以看到上圖最後一行,可以點擊執行Linux的命令,相當於xshell(插件升級後也可以上傳文件,有xftp的功能)

 出現如圖所示就表示發佈完全OK,當公司配置好這個後,在家裏的電腦只需要輸入需要連接的IP地址即可,其他配置自動同步.

取消發佈:直接用命令吧,也就那麼回事了,只要發佈搞定就解放了

--------------------------------------多模塊(聚合工程)jar,war包部署-------------------------------------------------------------

多模塊(聚合工程)jar,war包部署(右邊是官網鏈接)  https://help.aliyun.com/document_detail/100310.html  ---敘述不清楚名明白的可以加我V信 在博客首頁左上角有

 

部署前後都可以執行命令腳本,比如關閉端口號,甚至多個端口號(jar包一般使用關閉端口號所在的進程號kill掉就是關閉)

 

結語:扯那麼多,就是推薦個插件而已哈,有什麼疑問或者錯誤還是希望各位大佬在評論指點一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章