目前单独使用此脚本需要人工运行 并且加上参数(项目名字),全自动化的实现需结合jenkins
写之前我们先了解一下 java的maven项目的部署过程,学会手动去部署才能写脚本,jar与war的区别看tomcat专题
war包部署步骤 (这里所有项目都在/data/java_project拉取)
1.cd /data/java_project--- 2.拉取项目代码----3.进入项目目录---4.mvn命令打包成war包---5.关闭tomcat服务
6.备份线上发布目录的代码到备份目录---7.将刚打包好的war复制到tomcat发布目录(默认webapps/ROOT)
8.jar xvf 或unzip xxx.war -d 发布目录,---9.重启tomcat---10.检查页面
#!/bin/bash
#自动迭代JAVA代码,自动打成war包部署到TOMCAT
#提前装好jdk,maven,tomcat
#
#项目名称
JAVA_NAME=$1
#项目代码路径
RPOJECT_DIR=/data/java_project
#tomcat网站发布目录
TOMCAT_WEBDIR=/usr/local/tomcat/webapps/ROOT
#备份目录
JAVA_BACKDIR=/data/java_back
#时间
DATE=$(date +%F_%T)
if [ ! -d $RPOJECT_DIR ];then
mkdir -p $RPOJECT_DIR
fi
#拉项目|更新
cd $RPOJECT_DIR
if [ -d $JAVA_NAME ];then
cd $JAVA_NAME
git pull
else
git clone https://github.com/Niceone9/tomcat-java-demo.git
if [ $? -ne 0 ];then
echo "git clone 失败,检查项目名称是否正确|存在 "
exit
fi
fi
#maven构建war包
cd $RPOJECT_DIR/$JAVA_NAME
mvn clean package -Dmaven.test.skip=true
if [ $? -ne 0 ];then
ehco "mvn build failed!"
exit
fi
#停止tomcat(-n 字符串长度不为0时,true; -z 字符长度为0时,true)
TOMCAT_PID=$(ps -ef |grep tomcat|egrep -v "grep|*.sh"|awk -F' ' '{print $2}')
[ -n $TOMCAT_PID ] && kill -9 $TOMCAT_PID
#备份tomcat发布目录
if [ -d $TOMCAT_WEBDIR ];then
mv $TOMCAT_WEBDIR $JAVA_BACKDIR/${JAVA_NAME}-${DATE}
else
echo "tomcat 发布目录不存在"
exit
fi
#部署
unzip $RPOJECT_DIR/$JAVA_NAME/target/*.war -d $TOMCAT_WEBDIR
#启动tomcat
sh /usr/local/tomcat/bin/startup.sh
if [ $? -ne 0 ];then
echo "tomcat启动失败"
exit
else
echo "代码更新成功"
fi
结果:
image.png image.png
image.png
网友评论