操作方法
设置执行保护 #!/bin/bash ENV="0" echo -n "Confirm to deploy ? [yes|no]" read ANS case $ANS in yes) ENV="1" ;; n|N|no|No) #exit 0 ENV="2" ;; esac if [ "$ENV" == "0" ];then echo "exit" exit 0 fi if [ "$ENV" == "2" ];then echo "exit" exit 0 fi
定义变量并清空文件夹 deployPath="/opt/test/{projuectName}" tomcatPath="/usr/local/tomcat" logFile="d.log" projectName="{projuectName}" echo "1/5 chear the deploy path $deployPath ..." rm -rf $deployPath/* rm -rf $deployPath/.classpath rm -rf $deployPath/.svn rm -rf $deployPath/.project rm -rf $deployPath/.settings
svn checkout代码 echo "2/5 check out code ..." svn co {SVNURL} $deployPath --username {SVNUSERNAME} --password {SVNPASSWORD} > $logFile find $deployPath/. -type d -name ".svn"|xargs rm -rf cd $deployPath
mvn编译 echo "3/5 mvn build ..." mvn clean > $logFile mvn package > $logFile if (( $? )) then echo "mvn build Failed!" else echo "mvn build Success!" fi
发布到tomcat下,此处可以自行选择是否需要自动发布到tomcat下 echo "4/5 deploy into tomcat ..." $tomcatPath/bin/shutdown.sh > $logFile rm -rf $tomcatPath/webapps/$projectName/ mv $deployPath/target/{projuectName}.war $tomcatPath/webapps/$projectName.war $tomcatPath/bin/startup.sh > > $logFile #rm -rf $zipReadyPath/$projectName.zip #zip -r $tomcatPath/webapps/$projectName.zip . -i $tomcatPath/webapps/$projectName #mv $tomcatPath/webapps/$projectName.zip $zipReadyPath/$projectName.zip echo "5/5 complete!"
以下是整体shell脚本 #!/bin/bash ENV="0" echo -n "Confirm to deploy ? [yes|no]" read ANS case $ANS in yes) ENV="1" ;; n|N|no|No) #exit 0 ENV="2" ;; esac if [ "$ENV" == "0" ];then echo "exit" exit 0 fi if [ "$ENV" == "2" ];then echo "exit" exit 0 fi deployPath="/opt/test/XXXXXX" tomcatPath="/usr/local/tomcat" logFile="d.log" projectName="XXXXX" echo "1/5 chear the deploy path $deployPath ..." rm -rf $deployPath/* rm -rf $deployPath/.classpath rm -rf $deployPath/.svn rm -rf $deployPath/.project rm -rf $deployPath/.settings echo "2/5 check out code ..." svn co {SVNURL} $deployPath --username {SVNUSERNAME} --password {SVNPASSWORD} > $logFile find $deployPath/. -type d -name ".svn"|xargs rm -rf cd $deployPath echo "3/5 mvn build ..." mvn clean > $logFile mvn package > $logFile if (( $? )) then echo "mvn build Failed!" else echo "mvn build Success!" fi echo "4/5 deploy into tomcat ..." $tomcatPath/bin/shutdown.sh > $logFile rm -rf $tomcatPath/webapps/$projectName/ mv $deployPath/target/{projuectName}.war $tomcatPath/webapps/$projectName.war $tomcatPath/bin/startup.sh > > $logFile #rm -rf $zipReadyPath/$projectName.zip #zip -r $tomcatPath/webapps/$projectName.zip . -i $tomcatPath/webapps/$projectName #mv $tomcatPath/webapps/$projectName.zip $zipReadyPath/$projectName.zip echo "5/5 complete!"