根据输入版本号,端口,配置文件名自动拉取代码,gradle打包,运行应用
#!/bin/bash
read -p "Please enter version:" version
read -p "Please enter port(default 8280):" serve_port
read -p "Please enter profiles(default test [prod]):" profiles
if [ -z "${serve_port}" ];then
serve_port=8280
fi
if [ -z "${profiles}" ];then
profiles='test'
fi
readonly name='art-service'
readonly serve_jar_name="${name}-${version}.jar"
# 初始化
cd $(dirname $0) # 切换当前工作目录
_work_path=$(pwd) # 取到脚本目录
_git_project_path="${_work_path}/${name}" # 项目源码所在目录
_serve_jar_file="${_git_project_path}/build/libs/*.jar" # 编译之后JAR包所在的路径
_serve_build_file="${_git_project_path}/build/libs/*.original"
_serve_project_path="${_work_path}" # 项目发布目录
_serve_project_jar_file="${_serve_project_path}/${serve_jar_name}"
echo -e "\033[32m pull 同步更新项目 \033[0m"
cd $_git_project_path
git checkout --track origin/"deploy_${version}"
git pull
gradle build
echo -e "\033[32m 准备项目文件及备份 \033[0m"
cd $_serve_project_path
# cp -u $_old.jar $DIR_RELEASE_BACKUP_PROJECT # 先备份
# rm -rf $_serve_jar_file.jar # 后删除
mv $_serve_jar_file $_serve_project_jar_file # 将新的拷贝过来
rm -rf $_serve_build_file
echo -e "\033[32m 打包完成 \033[0m"
# 配置服务脚本
echo -e "\033[32m 配置服务脚本 \033[0m"
touch .service_start.sh
echo "#!/bin/bash" > .service_start.sh
echo "kill -9 \$(netstat -nlp | grep :${serve_port} | awk '{ print \$7 }' | awk -F\"/\" '{ print \$1 }')" >> .service_start.sh
# echo "kill -9 \$(lsof -i:${serve_port} | awk 'NR>1 { print \$2 }')" >> .service_start.sh #mac
echo "java -Xms2g -Xmx2g -jar ${_serve_project_jar_file} --spring.profiles.active=${profiles} --server.port=${serve_port} &" >> .service_start.sh
# 启动服务
echo -e "\033[32m 启动服务 \033[0m"
chmod +x .service_start.sh
./.service_start.sh
# OK!!
echo -e "\033[32m 完成 \033[0m"
网友评论