SpringBoot應用的打包和發(fā)布實現(xiàn)
1. 創(chuàng)建項目(example-fast)
基于 Spring Boot 創(chuàng)建一個 WEB 項目 example-fast。
2. 編譯打包
2.1 采用 IDEA 集成的 Maven 環(huán)境來對 Spring Boot 項目編譯打包,可謂是超級 easy

2.2 mvn 命令打包
# mvn clean 清理編譯 # install 打包 # -Dmaven.test.skip=true 跳過單元測試 # -P dev 指定dev配置 mvn clean install -Dmaven.test.skip=true -P dev
3. 應用發(fā)布
3.1 一行命令的演化
運行 Spring Boot 打包之后的 jar 方式也簡單,只需一行命令就行。
java -jar /usr/local/example-fast-1.0.0.jar
此時,服務是啟動了,但是不能關閉這個窗口,一旦關閉服務就停止了,不得不考慮后臺運行,并且還想看日志;
java -jar /usr/local/example-fast-1.0.0.jar > example-fast.out &
執(zhí)行啟動時,效果如下,然后就可以輕松看日志輸出了。
如果項目組中你既是研發(fā)又充當運維的角色,到這基本就完事兒了,因為相信通過熟練操作,會形成肌肉反應,你肯定能記住這一行命令。
不過,若是分工明確,生產(chǎn)權限隔離的話,一般都是運維同事來操作發(fā)布,所以還得想辦法讓運維同事省力,不得不考慮腳本化。
首先創(chuàng)建項目目錄例如 example-fast,然后分別創(chuàng)建 bin、lib、logs 目錄;把 example-fast-0.0.1-SNAPSHOT.jar 拷貝至 lib 目錄下;bin 目錄主要存放腳本。創(chuàng)建 start.sh 應用啟動腳本; stop.sh 應用停止腳本
啟動腳本(start.sh)
#!/bin/bash
#配置 Java 環(huán)境變量
export JAVA_HOME=/usr/local/java/jdk/jdk1.8.0_231
export PATH=.:$JAVA_HOME/bin:$PATH
#定義應用名
App_Name=example-fast
#定義應用所在目錄
App_Path=/home/${App_Name}
#定義可執(zhí)行文件的路徑
JAR_PATH=${App_Path}/example-fast-1.0.0.jar
#jvm啟動參數(shù)
JAVA_OPTS="-Duser.timezone=GMT+8 -server -Xms4096m -Xmx4096m -XX:MaxMetaspaceSize=256m -Xloggc:${App_Path}/logs/${App_Name}.gc.log -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5 -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintGCApplicationStoppedTime"
#啟動JAVA進程函數(shù)
CURRENT_COUNT=`ps -ef|grep java |grep ${App_Name} |grep -vc grep`
if [ $CURRENT_COUNT -eq 0 ]
then
Log_Name=$(echo ${App_Name}|awk -F"-" '{ print $NF }')
nohup java -Dfunc_type=${App_Name} $JAVA_OPTS -Dfile.encoding=utf-8 -jar $JAR_PATH > ${App_Path}/logs/${App_Name}.out 2>&1 &
PROCESS_ID=`ps -ef | grep "${App_Name}" |grep -v grep | awk '{ print $2 }'`
echo " ?????啟動應用 ${App_Name} 成功,進程 id 為 ${PROCESS_ID} ????? "
else
echo " ????? 應用 ${App_Name} 已經(jīng)被啟動了 ????? "
fi
# 執(zhí)行應用啟動 start.sh sh start.sh
停止腳本(stop.sh)
#!/bin/bash
# 定義應用名稱
App_Name=example-fast
# 停止JAVA進程函數(shù)
echo " ????? 開始停止 ${App_Name} 應用 ????? "
ps -ef | grep ${App_Name} | grep -v grep | awk '{print$2}' | xargs kill
echo " ????? 應用 ${App_Name} 停止成功!????? "# 執(zhí)行應用停止 stop.sh sh stop.sh
至此,Spring Boot 項目最基本的發(fā)布方式就完事了,可以直接執(zhí)行腳本完成項目的啟動和停止,操作更簡單了!更多相關SpringBoot應用打包和發(fā)布內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springboot?web項目中?Set-Cookie?失敗原因及解決辦法
這篇文章主要介紹了springboot?web項目中?Set-Cookie?失敗原因及解決辦法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-10-10
spring 整合 mybatis 中數(shù)據(jù)源的幾種配置方式(總結篇)
因為spring 整合mybatis的過程中, 有好幾種整合方式,尤其是數(shù)據(jù)源那塊,經(jīng)??吹讲灰粯拥呐渲梅绞剑偢杏X有點亂,所以今天有空總結下,感興趣的朋友跟隨腳本之家小編一起學習吧2018-05-05
Java中?springcloud.openfeign應用案例解析
使用OpenFeign能讓編寫Web?Service客戶端更加簡單,使用時只需定義服務接口,然后在上面添加注解,OpenFeign也支持可拔插式的編碼和解碼器,這篇文章主要介紹了Java中?springcloud.openfeign應用案例解析,需要的朋友可以參考下2024-06-06

