Spring Boot項目打包并部署到雲伺服器
一、雲伺服器的環境
-
-
OS: CentOS 7
-
Jdk 1.8
-
Spring Boot自動內建Tomcat,不需要單獨配置
二、本地Spring Boot項目打包
-
- 我使用的工具是
。打包之前先確定IntelliJ IDEA
配置正确。在cmd出口中輸入:MAVEN
用來檢查是否配置正确。mvn
- 然後在項目的
檔案中加入以下依賴(在pom.xml
之前)。</project>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
-
- 進行打包指令:
mvn clean package
- 如果IDEA自帶的終端出現:
可以使用cmd(mvn不是内部或外部指令,也不是可運作的程式 或批處理檔案。
)進入管理者運作
。在執行指令。項目位置
- 打包完成以後會在項目的
檔案夾下生成target
這樣的JAR包。cms-1.0-SNAPSHOT.jar
- 然後将
、jar包
、資料庫檔案
放在一個檔案夾内上傳到雲伺服器。我的是放在:``/usr/server/cms`啟動腳本
- 啟動腳本可以下載下傳,藍奏雲位址:▶ 啟動腳本
- 也可以自己建立一個文本文檔命名為:
,然後複制以下内容。catalina.sh
需要自己修改。JAR包的名稱
#!/bin/bash
#這裡可替換為你自己的執行程式
APP_NAME=cms-1.0-SNAPSHOT.jar
#使用說明,用來提示輸入參數
usage() {
echo "Usage: sh 執行腳本.sh [start|stop|restart|status]"
exit 1
}
#檢查程式是否在運作
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在傳回1,存在傳回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#啟動方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
BUILD_ID=dontKillMe
nohup java -jar $APP_NAME > ./catalina.log &
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#輸出運作狀态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重新開機
restart(){
stop
start
}
#根據輸入參數,選擇執行對應方法,不輸入則執行使用說明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
三、啟動Spring Boot服務
-
- 首先在雲伺服器安裝
,建議與本地Java版本一緻。可以參考:▶ CentOS 7搭建Java開發平台——Java 8Java
- 然後進入
的jar包
,添權重限:(我的是在/usr/server/cms下執行)存放位置
chmod 777 * .
-
:在jar包的目錄下執行啟動
./catalina.sh start
- 檢視
:啟動日志
tail -f catalina.log
四、測試結果
- 檢視啟動日志,沒有報錯以後可以用Postman或者浏覽器測試結果