1. 程式人生 > 實用技巧 >Spring boot程式的部署及執行

Spring boot程式的部署及執行

將 spring boot 應用程式打包成 jar 包

我們使用 spring boot 的 maven 外掛來構建管理整個應用程式,使用 mvn package 將應用程式打包成一個 jar 包

將 該 jar 包上傳到 伺服器

上傳到伺服器大致有兩種方式(常見的):1)通過 xftp 這種方式;2)本文將要介紹的這種,我不太建議使用 xftp,因為它太常見了,不新奇,
說說第二種方式吧:首先我們在 linux 伺服器上,下載 lrzsz 外掛,命令為:yum -y install lrzsz,然後上傳檔案就輸入命令:rz -y -y 表示強制覆蓋原有檔案(建議使用),rz 表示上傳,當然了,sz

就表示下載嘍。之後就會開啟一個 windows 的檔案資源管理器視窗,你選擇目標 jar 包即可實現上傳(前提,選擇好你的上傳目錄)

執行

上傳到伺服器的指定位置了,接下來就是如何運行了!
我們都知道,java 程式在你本地執行時就是選擇好入口 main,然後執行即可。但是在 linux 上就不是那麼簡單了。
大致呢有兩種:一種是直接手動啟動;一種是通過寫一個指令碼檔案來啟動。
直接啟動:
java -jar 目標.jar >> catalina.out 2>&1 &,什麼意思呢?就是將 tomcat(spring-boot-starter-web 自帶 tomcat) 的啟動內容 標準錯誤流重定向到標準輸出流(2 >&1),並且以在後臺執行的形式去執行(&)。

指令碼啟動

編寫啟動指令碼

#!/bin/bash
PROJECTNAME=目標jar名稱(不需要帶.jar)
pid=`ps -ef |grep $PROJECTNAME |grep -v "grep" |awk '{print $2}'`
if [ $pid ]; then
​    echo "$PROJECTNAME  is  running  and pid=$pid"
else
   echo "Start success to start $PROJECTNAME ...."
   nohup java -jar 目標.jar  >> catalina.out  2>&1 &
fi

在該 .sh(指令碼檔案)中,使用到了命令 nohup java -jar ... nohup 就是 no hangup(不掛起),即 即使使用者登出,
關閉終端後,該程序還會繼續執行;採用 nohup 命令後,那麼就會在當前指令碼所在的同級目錄下生成一個 nohup.out 的檔案,
該檔案就記錄了整個應用啟動過程以及之後執行中的所有日誌內容(因為我們是將 2 標準錯誤 作為輸出內容的,
而標準錯誤預設是包括所有的輸出內容+錯誤內容)。之後你只需要執行這個指令碼即可啟動應用程式啦:./start.sh
如果你想檢視一下日誌內容,你可以輸入:vi nohup.out,或者你只想檢視最後幾行內容:tail -f nohup.out即可。

指令碼關閉

編寫關閉指令碼:
其實我們一般是不需要關閉指令碼的,因為我們通常是這樣操作的:進入到該應用程式所在的目錄:
ps aux | grep javaps -ef | grep java 二者並沒有什麼太大的區別,看你喜歡用哪個命令了,
然後找到該應用程式的 pid, 然後 kill -g 該pid 就殺死這個程序了。但是其實這樣很麻煩,
你習慣了還好,一般我還是建議你使用 關閉指令碼的

#!/bin/bash
PROJECTNAME=目標

pid=`ps -ef |grep $PROJECTNAME |grep -v "grep" |awk '{print $2}' `

if [ $pid ]; then

​    echo "$PROJECTNAME is  running  and pid=$pid"

​    kill -9 $pid

​    if [[ $? -eq 0 ]];then

​       echo "sucess to stop $PROJECTNAME "

​    else

​       echo "fail to stop $PROJECTNAME "

​     fi

fi

一般目錄結構就是如下圖所示:

我實際中用的這個啟動指令碼內容如下:

ps:至於有人說的可能需要在 pom.xml 中指定 入口類,我持保留意見