用IDEA打包
直接用maven插件打包,位置:Maven Projects
-Lifecycle
-package
控制台輸出BUILD SUCCESS
時,說明打包成功
...
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ demo ---
[INFO] Building jar: C:\Project2\demo\target\demo-1.0.0.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.5.17.BUILD-SNAPSHOT:repackage (default) @ demo ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15.989 s
[INFO] Finished at: 2018-10-25T17:10:11+08:00
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0
可以在pom.xml文件里控制jar包的名字和版本號
<groupId>com.zwx</groupId> <artifactId>demo</artifactId> <version>1.0.0</version> <packaging>jar</packaging>
進入\項目\target\
目錄下找到打包好的jar包,用Xftp工具放到linux服務器上,復制粘貼即可。
其實到這一步可以直接用:
java -jar /位置/jar包名.jar
運行了,但是直接這樣做的話在停止springboot服務時很麻煩,需要找到這個jar包占用的進程,接着殺死相關進程。 所以為了方便后期維護,使用shell腳本進行啟動、關閉和檢查。
編寫腳本
啟動腳本
使用Xshell連接到服務器后,在jar包同級目錄下(為了方便),敲命令:vim start.sh
,輸入:
#!/bin/sh rm -f tpid nohup java -Xms1536m -Xmx1536m -jar demo.jar > launch.log 2>&1 & echo $! > tpid echo Start Success!
其中demo.jar 是要執行的jar包,launch.log是日志輸出的位置。
訪問ip+端口號:/接口名,如下圖所示,表明SpringBoot部署啟動成功:
同時可以看到目錄下生成了日志文件:
停止腳本
輸入命令:vim stop.sh
,下面這段粘進去:
#!/bin/sh APP_NAME=demo tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Stop Process...' kill -15 $tpid fi
sleep 5 tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid else echo 'Stop Success!' fi
其中APP_NAME改成你自己的jar包名稱。運行stop腳本,輸出如下表示運行成功:
[root@iz2tx5qq7tthc7z sb_demo]# sh stop.sh
Stop Process...
Stop Success!
訪問接口,發現已經無法訪問,說明腳本運行成功:
檢查腳本
vim check.sh,輸入:
#!/bin/sh APP_NAME=demo tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'App is running.' else echo 'App is NOT running.' fi
效果:
[root@iz2tx5qq7tthc7z sb_demo]# sh check.sh
App is NOT running.