tomcat版本发布
第一步:初始化svn(复制版本副本到本地)
cd /data/tomcat_svn/ (指定svn工作路径,自建)
svn co http://ip/JmsRefund (后面加路径,就是指定项目路径)
#按提示输入用户和密码
第二步:更新和发布
cd /data/tomcat_svn/JmsRefund (后面的JmsRefund为项目路径)
svn up (将代码更新到本地)
cd /date/bin/ (脚本放到自定目录)
sh update_JmsRefund.sh (更新和发布)
tomcat版本发布完成!!!
以下为update_JmsRefund.sh的脚本(如果创建新项目跟着“改”字地方更改。注意: mvn、jar 命令要有,如没有请看最下面)
主要实现:生成war包并移到$backupdir目录中,过滤代码版本;关闭tomcat,把war文件移到指定路径中,解压,启动tomcat)
vim update_JmsRefund.sh
#!/bin/bash
DT=`date +%Y%m%d%H%M%S`
project_name=JmsRefund #改:项目路径
workdir=/data/tomcat_svn/${project_name} #改:svn路径
logdir=/data/logs/
backupdir=/data/files/
application_path=/data/sites/${project_name} #改:tomcat指定目录,修改指定目录在下面
build_file=${project_name}-${DT}.war
if [ ! -d "$logdir" ]; then
mkdir -p “$logdir”
fi
if [ ! -d "$backupdir" ]; then
mkdir -p “$backupdir”
fi
if [ ! -d "$application_path" ]; then
mkdir -p “$application_path”
fi
cd $workdir
svn_ver=`svn up|grep 'revision'| grep -Eo '[0-9]+'` #过滤版本
mvn clean install -Pat_test -B -Dmaven.test.skip=true -DskipTests > ${logdir}/${project_name}.log #下载war包
build_status=`cat ${logdir}/${project_name}.log | grep "BUILD SUCCESS" | wc -l`
if [ ${build_status} -eq 1 ]; then #如果成功就移动war包和把版本号写入日志
cd ${workdir}/target
mv ${project_name}.war ${backupdir}/${build_file}
echo "${build_file} ==> build from SVN code version ${svn_ver}." >> ${logdir}/build.log
else
exit 1
fi
cd ${backupdir}
if [ -f "${build_file}" ]; then #如果有war包就关闭tomcat,移动war包到工作目录,启动tomcat
ps aux | grep 'tomcat2' | grep -v grep | awk '{ print $2 }'| xargs kill -9
cd /data/sites
mv $project_name ${project_name}.${DT}
mkdir $project_name
cp -a ${backupdir}/${build_file} ${application_path}/
cd ${application_path}
jar -xvf ${build_file}
/usr/local/tomcat2/bin/startup.sh #启动tomcat程序
else
exit 1
fi
#显示tomcat的pid和版本
state=`cat /data/logs/tomcat/transaction.log |tail -1 | awk '{print $10}'`
svn_version=`cat /data/logs/build/build.log |tail -1`
tomcat_pid=`ps aux | grep 'tomcat' | grep -v grep | awk '{ print $2 }'`
if [ ${state} == "successfully" ];then
echo -e "\033[1;32mtomcat_pid:${tomcat_pid}\033[0m"
echo "${svn_version}"
else
echo "transaction update failed"
fi
添加tomcat读取war包指定目录
vim /etc/tomcat/server.xml 或是目录 /usr/local/tomcat/conf/server.xml
140 <Context path="" docBase="/data/sites/transaction" debug="1" reloadable="true" allowLinking="true" />
一般yum源有提供maven包,如果版本要求需要到官网下载
yum install -y maven