前言
這裡打包的是jar項目,也就是沒有webapp目錄,通過maven打包插件打包釋出到伺服器
1. pom檔案引入插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
boot使用這個插件可以将項目打包成一個可運作的jar,無需在目标伺服器安裝tomcat等
2.idea中快速打包
當然打包之前記得選擇自己生産環境配置檔案
3.java –jar運作項目
我們打開剛才打包之後的所在的位置,确實有一個jar包
在目前檔案路徑直接使用cmd通過java –jar運作項目
4.通路項目
http://localhost:8080/index
5.釋出到伺服器
釋出之前伺服器需要已經安裝了jdk環境,資料庫(項目資料庫伺服器如果是本伺服器)
通過類似xshell等上傳檔案将上面的jar檔案上傳到伺服器某個檔案夾下,在目前路徑下運作下面指令即可在背景啟動項目,其中hellword-0.0.1-SNAPSHOT.jar是我的項目
nohup java -jar hellword-0.0.1-SNAPSHOT.jar > hellword-0.0.1-SNAPSHOT.log 2>&1 &
補充:其他相關指令
nohup java -jar xxx.jar &
這樣執行後,nohup會把執行結果中的日志輸出到目前檔案夾下面的nohup.out檔案中,通常情況下我們使用以上指令即可。 也可手動指定一個參數來規定日志檔案的輸出地點
nohup java -jar xxx.jar > catalina.out 2>&1 &
如果不需要輸出日志,可以使用如下指令
nohup java -jar xxx.jar >/dev/null &
為了友善管理,我們還可以通過Shell來編寫一些用于啟動應用的腳本,比如關閉應用的腳本:stop.sh
#!/bin/bash
PID=$(ps -ef | grep yourapp.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi
啟動應用的腳本:start.sh
#!/bin/bash
nohup java -jar yourapp.jar --server.port=8888 &
整合了關閉和啟動的腳本:run.sh,由于會先執行關閉應用,然後再啟動應用,這樣不會引起端口沖突等問題,适合在持續內建系統中進行反複調用。
#!/bin/bash
echo stop application
source stop.sh
echo start application
source start.sh
在Spring Boot的Maven插件中,還提供了建構完整可執行程式的功能,什麼意思呢?就是說,我們可以不用java -jar,而是直接運作jar來執行程式。這樣我們就可以友善的将其建立成系統服務在背景運作了。主要步驟如下:在pom.xml中添加Spring Boot的插件,并注意設定executable配置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
在完成上述配置後,使用mvn install進行打包,建構一個可執行的jar包,建立軟連接配接到/etc/init.d/目錄下
sudo ln -s /var/yourapp/yourapp.jar /etc/init.d/yourapp
在完成軟連接配接建立之後,我們就可以通過如下指令對yourapp.jar應用來控制啟動、停止、重新開機操作了
/etc/init.d/yourapp start|stop|restart