Linux一键拉取代码打包部署项目脚本

1.脚本功能说明

1.拉取代码:没项目时clone到本地,有项目时更新项目
2.maven打包
3.循环杀掉所有正在运行的项目相关的服务(注意执行文件不要起和项目相同的名字,会把正在执行的文件任务给杀掉)
4.删除原来的jar包和内容.复制打包jar到指定位置
5.加载外部配置文件启动项目,并输出当前日志到指定位置

2.运行前提

使用前需要安装git 和 maven
安装git
安装maven

3.创建执行文件

vi mysh.sh

给执行文件赋权

chmod 777 mysh.sh

4.脚本内容

copy脚本时注意修改路径等项目之间相关不同的内容

#!/bin/sh
#项目的git地址
git_path="仓库地址"
#本地代码位置代码路径
code_path="/xxx"
#项目名称
projectName="xxx"
env="master"
#如果项目文件夹不存在说明没有下载过改项目代码,需要检出该项目
if [ ! -d ${code_path}/${projectName} ];
  then
echo ${projectName}"不存在,检出该项目"
cd $code_path
git clone "仓库地址"
  else
echo ${projectName}"项目存在,更新代码"
cd ${code_path}/${projectName}
git reset --hard
git pull
fi
#删除项目
echo "删除项目下target"
rm -rf "${code_path}/${projectName}/${projectName}/target"
#maven 再打项目包
echo "maven打包${projectName}"
cd ${code_path}/${projectName}
mvn install -Dmaven.test.skip=true -Denv=$env -U
#如果打包出错直接退出
if [ $? -ne 0 ]; then
      exit 1
fi
#关闭jar服务
echo "关闭jar服务"
#查询jar包服务进程ID,并杀掉该进程
pidList=$(ps aux | grep $projectName | grep -v grep | awk '{print $2}')
for pid in $pidList
do
kill -9 $pid
echo 'kill pid '$pid
done

echo "删除${projectName}.jar和${projectName}.log文件"
cd ${code_path}
rm -rf "${projectName}.jar"
rm -rf "${projectName}.log"
echo "复制打包的jar包到/home下"
cp "${code_path}/${projectName}/target/${projectName}.jar" ${code_path}
#启动jar包
echo "加载指定配置,运行jar包"
#加载外部配置文件也可以使用这种:java -jar xxx.jar --spring.config.location="路径+文件名"
nohup java -jar -Dspring.config.location="application.properties" ${code_path}/${projectName}.jar > ${code_path}/${projectName}.log 2>&1 &
echo "查看启动日志"
tail -f ${code_path}/${projectName}.log

4.运行脚本

# 同级目录下执行脚本
./mysh.sh

5.效果演示

在这里插入图片描述在这里插入图片描述

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值