shell脚本实现项目自动拉取、打包、运行

426 阅读1分钟

shell脚本实现项目自动拉取、打包、运行

本文章分享shell脚本,在服务端运行shell脚本即可自动通过git拉取代码,编译打包,然后运行。与Jenkins、gogs等持续集成相比,我认为在于配置简单、学习门槛较低,也比较适合单节点项目。

完整shell脚本

shell脚本代码如下:

#git地址
git_path="https://gitee.com/turn-dust-into-shadow/algae-system-api.git"
#项目路径
code_path="/algae/"
#项目名称,与giturl那一致
projectName="algae-system-api"
#项目的target路径
target_path="/sa-admin/target"
#mvn root path
mvn_root_path=""
#生成的jar包的名称,不用后缀
jarName="algae-system-api"
env="master" 
echo "[start]开始执行"
#如果项目文件夹不存在说明没有下载过改项目代码,需要检出该项目
if [ ! -d ${code_path}${projectName} ];
  then
echo ${projectName}"[info]不存在,检出该项目"
cd $code_path
# git地址
git clone ${git_path}
  else
echo ${projectName}"[info]存在,更新代码"
cd ${code_path}${projectName}
git reset --hard
git pull
fi
#删除target
echo "[info]删除target start"
rm -rf "${code_path}${projectName}${target_path}"
echo "[info]删除target success"
# 删除原本的jar包
echo "[info]删除原本的jar包 start"
rm -rf "${code_path}${jarName}.jar"
echo "[info]删除原本的jar包 success"
# 再打项目包
echo "[info]maven开始打包"
cd ${code_path}${projectName}${mvn_root_path}
# 默认环境
# echo "[info]运行环境:默认"
#mvn install -Dmaven.test.skip=true -Denv=$env -U
# 测试环境
echo "[info]运行环境:test"
mvn clean package -Dmaven.test.skip=true -P test
# 开发环境
#echo "[info]运行环境:dev"
#mvn clean package -Dmaven.test.skip=true -P dev
# 生产环境
#echo "[info]运行环境:prod"
#mvn clean package -Dmaven.test.skip=true -P prod
#如果打包出错直接退出
if [ $? -ne 0 ]; then
      echo "==[error]打包出错=="
      exit 1
fi
echo [info]"maven打包 success"
#关闭jar服务
echo "[info]关闭jar服务"
#查询jar包服务进程ID,并杀掉该进程
pidList=$(ps aux | grep $jarName | grep -v grep | awk '{print $2}')
for pid in $pidList
do
kill -9 $pid
echo '[info]kill pid '$pid
done
echo "[info]关闭jar服务success"
#复制打包好的jar包到项目路径下面
echo "[info]复制打包好的jar包到项目路径下面"
cd ${code_path}
rm -rf "${jarName}.jar"
cp "${code_path}${projectName}${target_path}/${jarName}.jar" ${code_path}
echo "[info]复制打包好的jar包到项目路径下面success"
#启动jar包
echo "[info]启动jar包"
# 后台运行
nohup java -jar "${jarName}.jar" &
# 前台运行
#java -jar "${jarName}.jar" &
echo "[info]启动jar包success"
echo "[end]success"

使用与说明

1.环境需要

确保你的服务器的maven、java、git可以正常使用

git --version
java -version
mvn -v

2.修改参数

你需要修改以下参数:

#git地址
git_path=""
#项目路径
code_path=""
#项目名称,与giturl那一致
projectName=""
#项目的target路径
target_path=""
#mvn root path
mvn_root_path=""
#生成的jar包的名称,不用后缀
jarName=""
  • git_path:你的项目的git地址
  • code_path:你项目所在的根目录,如下图,code_path="/algae" image.png
  • projectName:项目名称,与giturl那一致,比如我的git脚本拉去下来后的名称是algae-system-api,则projectName="algae-system-api"
  • target_path:maven打包后生成的jar包默认保存在代码的target文件夹中,填入该相对路径即可
  • mvn_root_path:父pom.xml文件所在的目录。如我的就在algae-system-api目录下,因此mvn_root_path=""
    image.png
  • jarName="":最后打包成的jar包名称

3.选择对应的运行环境

可以根据需要解开对应的注释,或自定义添加

# 默认环境
# echo "[info]运行环境:默认"
#mvn install -Dmaven.test.skip=true -Denv=$env -U
# 测试环境
echo "[info]运行环境:test"
mvn clean package -Dmaven.test.skip=true -P test
# 开发环境
#echo "[info]运行环境:dev"
#mvn clean package -Dmaven.test.skip=true -P dev
# 生产环境
#echo "[info]运行环境:prod"
#mvn clean package -Dmaven.test.skip=true -P prod

4.脚本授权

chmod 777 <你的脚本>

5.运行脚本

./<你的脚本>