SpringBoot项目打成jar包部署到Linux上


用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.


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM