借助IDEA一鍵部署項(xiàng)目到服務(wù)器中
項(xiàng)目部署的幾種方式:
- 通過(guò)jar包部署
- 通過(guò)git拉取代碼在服務(wù)器運(yùn)行部署
- 通過(guò)docker直接打包鏡像系統(tǒng)進(jìn)行部署
ps: 本文屬于jar包部署(適用于:小型項(xiàng)目,單模塊/多模塊項(xiàng)目)
以前通過(guò)jar包部署項(xiàng)目時(shí),我們總是:
- 本地打包->上傳到服務(wù)器->kill掉以前的服務(wù)->重新啟動(dòng)jar包服務(wù)
??總是循環(huán)這一系列的操作,于是博主就想,這都是一些固定的流水線操作,對(duì)于流水線型的操作最適合交給程序去做,我們只需要把那些個(gè)必要變量(路徑/端口)抽離出來(lái)變成外部配置文件,這樣我們就完全可以實(shí)現(xiàn)自定義流水線操作.說(shuō)干咱就干.
??通過(guò)查閱大量的博客資料博主發(fā)現(xiàn)IDEA中的Alibaba Cloud Toolkit
插件剛好滿(mǎn)足博主的需求.
??下載插件博主不多說(shuō),能看到這篇文章的不會(huì)還不會(huì)下載插件吧,不會(huì)吧不會(huì)吧.下載完成之后我們就可以來(lái)配置了.首先我們需要打開(kāi)Alibaba Cloud Toolkit
的HOST控制面板
??打開(kāi)之后長(zhǎng)這個(gè)樣?jì)饍哼?
??然后我們點(diǎn)擊ADD HOST
按鈕
??在圖片中我也說(shuō)過(guò)了,這里的配置只是我們能確保點(diǎn)擊之后把jar包上傳到指定服務(wù)器中的指定位置,但是jar包的運(yùn)行還是需要一個(gè)部署后的腳本命令來(lái)執(zhí)行的.
??這里博主是寫(xiě)了一個(gè)簡(jiǎn)單的腳本文件,這里的腳本是用root用戶(hù)來(lái)運(yùn)行的,如果不是root用戶(hù),看了腳本也應(yīng)該就知道該怎么去改了
#!/bin/bash
# $1 是插件上邊配置的路徑參數(shù)
# $2 是項(xiàng)目運(yùn)行的端口號(hào)
jarPath=$(find "$1" -name '*.jar')
portPid=$(netstat -anp | grep "$2" | awk '{printf $7}' | cut -d/ -f1)
if [ -n "$portPid" ]; then
kill -9 "$portPid"
fi
java -jar "$jarPath" > "$1"/project.log 2>&1 &
- $1參數(shù)是上傳的jar包路徑
- $2參數(shù)是項(xiàng)目運(yùn)行的端口號(hào)
??把這個(gè)腳本內(nèi)容粘貼到服務(wù)器的(/home/project/deploy-jar.sh),然后就可以去配置插件中我們剛剛看到的command命令那一行了.
此時(shí)我們只需要在③中填入bash /home/project/deploy-jar.sh /home/project/tianbo/tianbo-admin 8080
點(diǎn)擊ok一路ok下去就真的ok啦
在需要的時(shí)候點(diǎn)擊綠色的三角就可以直接執(zhí)行了