linux shell部署java,拉git代码,打包发布

#!/bin/bash
 
#项目运行端口
port=80

#打包分支
branch=master

#项目路径统一前缀(全路径)
prefix=/usr/local/java/apps
#日志目录
logdir=/data/logs

#项目根路径
projectrootdir=${prefix}/wx
#生成的jar包的名称以及路径,保证sh文件到处都可运行,使用全路径
newjarfiledir=${prefix}/jar
newjarfilename=${newjarfiledir}/wx.jar
#旧jar包不删除,移动到指定目录(为了不重名,采用时间串)
oldjarfiledir=${prefix}/oldjar
currenttime=$(date "+%Y%m%d%H%M%S")
oldjarfilename=${oldjarfiledir}/wx${currenttime}.jar
 
#默认数据
#target目录``
targetdir=${projectrootdir}/target
 
#输出文件目录
outfilename=${logdir}/nohup.out
 
#是否存在根目录文件夹
echo "是否存在根目录文件夹"
if [ ! -d "${projectrootdir}" ]; then
	echo "不存在目录${projectrootdir}"
	echo "拉gitee上的项目 git clone https://gitee.com/ityl/wx.git"
	git clone https://gitee.com/ityl/wx.git
else
	echo "使用已存在的目录${projectrootdir}"
fi
#是否存在存放jar的文件夹
echo "是否存在存放jar的文件夹"
if [ ! -d "${newjarfiledir}" ]; then
	mkdir ${newjarfiledir}
else
	echo "使用已存在的目录${newjarfiledir}"
fi
#是否存在存放oldjar的文件夹
echo "是否存在存放oldjar的文件夹"
if [ ! -d "${oldjarfiledir}" ]; then
	mkdir ${oldjarfiledir}
else
	echo "使用已存在的目录${oldjarfiledir}"
fi
 
#开始处理
echo "开始查找${port}端口进程PID"
pid=$(lsof -i:${port} | awk 'NR==2{print $2}')
if [ ! -n "$pid" ]; then
        echo "${port}端口未被占用"
else
       echo "端口已被占用,正在结束进程..."
       $(kill -s 9 $pid)
       echo "结束进程成功!"
fi

echo "cd ${projectrootdir}"
cd ${projectrootdir}
echo "git checkout ${branch}"
git checkout master
echo "git pull origin ${branch}"
git pull origin ${branch}
echo "mvn clean"
mvn clean
echo "mvn compile"
mvn compile
echo "mvn -Dmaven.test.skip=true package"
mvn -Dmaven.test.skip=true package
targetjarfilename=$(find ${targetdir} -name "*.jar" | sed 's#.*/##')
echo "生成的包名为:${targetjarfilename}"
if [ ! -f "${newjarfilename}" ]; then
	echo "${newjarfilename}下未发现文件名冲突jar包"
else
	echo "移动包:${newjarfilename} --> ${oldjarfilename}"
	mv ${newjarfilename} ${oldjarfilename}
fi
echo "移动包:${targetdir}/${targetjarfilename} -->  ${newjarfilename}"
mv ${targetdir}/${targetjarfilename} ${newjarfilename}

echo "启动:nohup java  -Xrunjdwp:transport=dt_socket,address=38080,server=y,suspend=n -jar -Dserver.port=${port} ${newjarfilename} >> ${outfilename}  &"
nohup java  -Xrunjdwp:transport=dt_socket,address=38080,server=y,suspend=n -jar -Dserver.port=${port}  ${newjarfilename} >> ${outfilename}  &

echo "启动成功,成功运行脚本自动化部署springBoot项目!!"

echo "查看日志:ctrl+c 退出查看"
tail -f ${outfilename}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值