以部署 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