前提
1、已安装git、maven、java环境
不清楚的可以看另一篇文章: https://blog.csdn.net/weixin_44646763/article/details/137041469
2、已为项目设置远程 git 仓库 origin (可以通过:git remote add origin https://github.com/xxx/xxx.git
设置)
创建自动化部署脚本
创建脚本文件autoDeploy.sh
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=test
# 查找进程id是否存在,存在则停止进程
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 2
# 再次查找进程id,存在则杀死进程(双重保障进程已停止)
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
echo 准备从Git仓库拉取最新代码
# ---这里改为项目所在目录---
cd /usr/local/project/test_project/test
echo 开始从Git仓库拉取最新代码
git pull origin master
echo 代码拉取完成
echo 开始打包
# 先clear在打包,取消单元测试
output=`mvn clean package -Dmaven.test.skip=true`
# 进入项目打包后的文件夹
cd ./target
echo 启动项目
# ---test-0.0.1-SNAPSHOT.jar为打包后生成的jar包,要自行改为项目打包后的jar包名---
# ---autoDeploy.log为定义的日志记录文件,不存在时会自动创建---
nohup java -jar test-0.0.1-SNAPSHOT.jar &> autoDeploy.log &
echo 项目启动完成
APP_NAME=test
,这里test要自行改为对应的项目名,用于脚本可以找到进程
/usr/local/project/test_project/test
为我项目所在目录,自行改为自己项目的目录
test-0.0.1-SNAPSHOT.jar
,为我这里打包后生成的jar包,要自行改为对应项目打包后的jar包名(不清楚jar名的可以先通过 mvn package
手动打包一次)
为脚本文件添加权限
在脚本文件目录下运行命令:
chmod 777 bootStart.sh
运行脚本
./autoDeploy.sh
验证
输入命令行:
ps -ef | grep java
可以看到项目已经在后台正常运行了