美文网首页
java+gradle自动打包运行shell

java+gradle自动打包运行shell

作者: 来一碗花甲粉 | 来源:发表于2019-03-16 21:39 被阅读0次

根据输入版本号,端口,配置文件名自动拉取代码,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"

相关文章

网友评论

      本文标题:java+gradle自动打包运行shell

      本文链接:https://www.haomeiwen.com/subject/cajemqtx.html