intellij idea 2021.2 打包并上传运行一个spring boot项目(spring boot 2.5.4)

一,在idea中打开项目:

此处我们以storeback项目为例:
 
1,打开右侧的maven面板,如图:
2,打开Lifecycle,双击执行 clean
如图:
注意:运行clean后,之前产生的target目录已被清除
 
3,注意此时项目中还没有生成target文件夹:
 
还是在maven面板,双击执行package
打包完成后,已生成了target文件夹,
此处可以看到生成的jar包

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/
         或: https://gitee.com/liuhongdi

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,上传jar包到服务器并运行:

1,服务端: 创建目录:
[root@blog ~]# mkdir /data/store/back
[root@blog ~]# mkdir /data/store/back/tools
[root@blog ~]# mkdir /data/store/back/logs
[root@blog ~]# mkdir /data/store/back/jar
 
2,上传jar包到服务端的jar目录下,
服务端:查看:
[root@blog conf.d]# cd /data/store/back/jar
[root@blog jar]# ls
storeback-0.0.1-SNAPSHOT.jar
3,服务端:直接运行jar包
[root@blog jar]$ java -jar storeback-0.0.1-SNAPSHOT.jar --spring.profiles.active=prd
4,从浏览器查看效果:
 
5,让jar包做为daemon运行:
创建脚本
[root@blog tools]$ vi startback.sh
代码为:
[root@blog tools]$ more startback.sh
#!/bin/bash
export BUILD_ID=dontKillme
whoami
WORKSPACE=/data/store/back/jar
JDK_PATH=/usr/local/soft/jdk-15/bin/java
JAR_NAME=storeback-0.0.1-SNAPSHOT.jar
 
#echo ${JAR_NAME}
PID=`ps -ef | grep ${JAR_NAME} | grep -v grep | grep -v startup | awk '{print $2}'`
echo $PID;
if [ ! "$PID" ] ;then
     echo "进程不存在"
else
    echo "进程存在,杀死进程PID$PID"
    kill -9 $PID
fi
 
echo "服务启动开始"
nohup ${JDK_PATH} -jar ${WORKSPACE}/${JAR_NAME} --spring.profiles.active=prd >> /data/store/back/logs/back.log 2>&1
说明:判断有进程存在时会先杀掉进程,然后再启动服务
 

三,查看intellij idea的版本:

四,查看spring boot的版本:

 .   ____          _            __ _ _
 /\ / ___'_ __ _ _(_)_ __  __ _    
( ( )\___ | '_ | '_| | '_ / _` |    
 \/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.5.4)

五,查看服务端的java版本:

[root@blog jar]# java --version
java 15 2020-09-15
Java(TM) SE Runtime Environment (build 15+36-1562)
Java HotSpot(TM) 64-Bit Server VM (build 15+36-1562, mixed mode, sharing) 
原文地址:https://www.cnblogs.com/architectforest/p/15218708.html