
正文
svn-maven-tomcat自动发布脚本
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
#!/bin/sh#svn-maven-tomcat自动发布脚本
#变量设置
svnpath=svn://10.60.10.120/研发部/xx-maven
svnusername=xxx
svnpassword=xxxn888
workplace=xxepp
projname=xxepp
tomcat_server=10.60.10.161
webappsPath=/usr/local/tomcat/webapps#环境变量设置
export JAVA_HOME=/usr/local/jdk18
export CLASSPATH=${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export M2_HOME=/usr/local/apache-maven-3.3.
export M2=$M2_HOME/bin
export PATH=$M2:$PATHrm -fr ${workplace}#从svn上面export代码
svn export ${svnpath} ./${workplace} --username ${svnusername} --password ${svnpassword}#maven编译
compileSuccessFlag=cd ${workplace}
/usr/local/apache-maven-3.3./bin/mvn clean package -Dmaven.test.skip=trueif [ $? -eq ]; then
compileSuccessFlag=
echo "maven编译成功"
else
echo "maven编译失败"
ficd ../#如果编译失败,直接退出if [ ${compileSuccessFlag} -eq ]; then
echo "编译失败,程序退出"
exit ;
fi#编译成功,war存在,则复制到tomcat目录,重启tomcat
warPath=./${workplace}/target/${projname}.war
if [ -f "${warPath}" ]; then#删除老的war包,将新的包拷贝过去
#ssh ${tomcat_server} rm -rf ${webappsPath}/${projname}.war
ssh ${tomcat_server} find ${webappsPath}/old/ -mtime +|xargs rm -rf
ssh ${tomcat_server} mv ${webappsPath}/${projname}.war ${webappsPath}/old/${projname}$(date +%s).war
ssh ${tomcat_server} rm -rf ${webappsPath}/${projname}
scp ./${workplace}/target/${projname}.war ${tomcat_server}:${webappsPath}/#重启tomcat
echo "重启tomcat..."
ssh ${tomcat_server} 'source /root/.bash_profile;/usr/local/tomcat/bin/shutdown.sh'
sleep
if [ $? -eq ]; then
ssh ${tomcat_server} 'source /root/.bash_profile;/usr/local/tomcat/bin/startup.sh'
sleep
echo "重启成功"
else
echo "tomcat启动失败"
fielse
echo "war包不存在"
fi
备注:因maven服务器和tomcat服务器在不同的主机上,需要做公钥认证







