SpringBoot项目做完之后,打jar包,部署到服务器上
打包
Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar文件
所以在pom文件中加入:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后:maven-package打包
打包成功:testSpringBootMail-1.0-SNAPSHOT.jar
查看jar包的位置(在target文件夹下):
右键->show in explorer:就会在打开jar包所在的文件夹
部署
将jar包传到要部署的服务器上。这里我把jar包拉到了/usr/local/tzq/文件夹下
然后运行命令(服务器需要有jdk或者jre环境,java -jar就是执行jar包命令):
nohup java -jar testSpringBootMail-1.0-SNAPSHOT.jar >> log/java_log.file 2>&1 &
其中需要把testSpringBootMail-1.0-SNAPSHOT.jar
替换成你的jar包的名字。
命令中的 nohup 和 & 作用:
此处参考:https://www.cnblogs.com/zouhong/p/12191196.html
到这里服务已经部署成功!!!
输入命令显示所有服务:lsof -i:8098
lsof -i :查看所有端口占用情况,lsof -i:8098我这个服务是在8098端口跑的
可以看到,服务已经在运行了!
运行脚本
除了直接java -jar运行jar包之外,还可以用shell脚本来运行启动服务:
start.sh
:
#!/bin/bash
PROPATH=`pwd`
NODEPATH=${PROPATH}"/visualization/startup.js"
# 判断程序是否在允许,如果在运行停止
jpid=`ps aux | grep testSpringBootMail-1.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ ${jpid} ]; then
echo 'Stop resource Process...'
kill -15 $jpid
fi
# 等待五秒钟,确保服务已经停止,并显示进度条
b=''
for ((i=0;$i<=100;i+=2))
do
printf "progress:[%-75s]%d%%\r" $b $i
sleep 0.1
if [ `expr $i % 4` -eq 2 ];then
b=##$b
else
b=#$b
fi
done
echo
# 判断程序是否已经停止,如果没有停止,-9 强制杀死进程
jpid=`ps aux | grep testSpringBootMail-1.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ ${jpid} ]; then
echo 'Kill resource Process!'
kill -9 $jpid
else
echo 'Stop resource Success!'
fi
# 启动程序
nohup java -jar testSpringBootMail-1.0-SNAPSHOT.jar >> log/java_log.file 2>&1 &
echo "startup success..."
其中:
把该脚本放到jar包同一文件夹下,先 chmod u+x start.sh添加权限,然后运行 ./start.sh 即可完成启动。
脚本下载位置:https://download.csdn.net/download/TAaron666/19388641