以部署 demo-0.0.1-SNAPSHOT.jar 项目为例
通过两个脚本可以实现对java服务的重新部署
service.sh # 位于服务器上,控制服务启动、停止、重启
deploy.sh # 位于开发环境中,打包、更新服务器代码并重启
service.sh
#!/bin/bash
# 启动命令
function start(){
echo "start..."
nohup java -jar demo-0.0.1-SNAPSHOT.jar >> nohup.out 2>&1 &
echo "start successful"
return 0
}
# 停止命令
function stop(){
echo "stop..."
ps -ef|grep demo-0.0.1-SNAPSHOT.jar|grep -v grep|awk '{print "kill -9 "$2}'|sh
echo "stop successful"
return 0
}
case $1 in
"start")
start
;;
"stop")
stop
;;
"restart")
stop && start
;;
*)
echo "请输入: start, stop, restart"
;;
esac
deploy.sh
#!/bin/bash
# 打包
mvn package && \
# 上传
scp target/demo-0.0.1-SNAPSHOT.jar root@<远程ip>:/www/www.demo.com && \
# 远程重启
ssh root@<远程ip> "cd /www/www.demo.com; bash service.sh restart"
使用方式
服务器上使用
# 启动
bash service.sh start
# 关闭
bash service.sh stop
# 重启
bash service.sh start
本地开发环境中使用
# 重新部署
bash deploy.sh