#!/bin/bash
# jar文件位置
jarPath="/data/api"
# 拉取源代码存放的位置
originCode="/data/api/originCode"
# 备份jar文件位置
backPath="/data/api/back"
# 按时间区分
data=`date +"%Y-%m-%d-%H:%M:%S"`
# 项目端口
port=8081
echo "=====================创建备份文件路径============"
if [ ! -d ${backPath} ];then
mkdir -p ${backPath}
else
echo "备份文件路径已存在"
fi;
echo "=====================备份jar====================="
cd ${jarPath}
mv api-0.1.jar ${backPath}/api-0.1.${data}.jar
echo "=====================备份jar成功================="
echo "=====================创建源代码目录,如果不存在==="
if [ ! -d ${originCode} ];then
mkdir -p ${originCode}
else
echo "源代码目录已存在"
fi;
## 从git拉取代码
echo "=====================拉取新代码=================="
cd ${originCode}
git pull
echo "=====================拉取成功====================="
## 构筑项目
echo "=====================打包中======================="
cd ${originCode}
mvn clean install -Dmaven.test.skip=true
echo "=====================打包完成====================="
echo "=====================移动jar包到jarPath目录下====="
cd ${originCode}/api/target
mv api-0.1.jar ${jarPath}
echo "=====================停止项目,准备启动...========="
cd ${jarPath}
#根据端口号查询对应的pid
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
#杀掉对应的进程,如果pid不存在,则不执行
if [ -n "$pid" ]; then
kill -9 $pid;
fi
sleep 1s
echo "=====================启动项目====================="
java -jar .jar api-0.1.jar >/opt/logs/api/catalina.out 2>&1 &