一个web项目
svn 安装好并且可执行
maven 安装好并且配置好环境变量
linux服务器,网络通畅
已经存在一个可运行的tomcat
设置执行保护#!/bin/bashENV='0'echo -n 'Confirm to deploy ? [yes|no]'read ANScase $ANS in yes) ENV='1' ;; n|N|no|No) #exit 0 ENV='2' ;;esacif [ '$ENV' == '0' ];thenecho 'exit'exit 0fiif [ '$ENV' == '2' ];thenecho 'exit'exit 0fi
定义变量并清空文件夹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/.classpathrm -rf $deployPath/.svnrm -rf $deployPath/.projectrm -rf $deployPath/.settings
svn checkout代码echo '2/5 check out code ...'svn co {SVNURL} $deployPath --username {SVNUSERNAME} --password {SVNPASSWORD} > $logFilefind $deployPath/. -type d -name '.svn'|xargs rm -rfcd $deployPath
mvn编译echo '3/5 mvn build ...'mvn clean > $logFilemvn package > $logFileif (( $? )) then echo 'mvn build Failed!' else echo 'mvn build Success!'fi
发布到tomcat下,此处可以自行选择是否需要自动发布到tomcat下echo '4/5 deploy into tomcat ...'$tomcatPath/bin/shutdown.sh > $logFilerm -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.zipecho '5/5 complete!'
以下是整体shell脚本#!/bin/bashENV='0'echo -n 'Confirm to deploy ? [yes|no]'read ANScase $ANS in yes) ENV='1' ;; n|N|no|No) #exit 0 ENV='2' ;;esacif [ '$ENV' == '0' ];thenecho 'exit'exit 0fiif [ '$ENV' == '2' ];thenecho 'exit'exit 0fideployPath='/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/.classpathrm -rf $deployPath/.svnrm -rf $deployPath/.projectrm -rf $deployPath/.settingsecho '2/5 check out code ...'svn co {SVNURL} $deployPath --username {SVNUSERNAME} --password {SVNPASSWORD} > $logFilefind $deployPath/. -type d -name '.svn'|xargs rm -rfcd $deployPathecho '3/5 mvn build ...'mvn clean > $logFilemvn package > $logFileif (( $? )) then echo 'mvn build Failed!' else echo 'mvn build Success!'fiecho '4/5 deploy into tomcat ...'$tomcatPath/bin/shutdown.sh > $logFilerm -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.zipecho '5/5 complete!'
{}里面的内容为自己的变量,根据自己实际填写