多语言展示
当前在线:940今日阅读:103今日分享:49

linux自动发布脚本(svn,maven,tomcat)

当我们开发一个javaweb项目,并在linux上进行发布的时候,需要发布,我们不妨写个脚本来自动获取svn全量代码编译并发布来实现。
工具/原料
1

一个web项目

2

svn 安装好并且可执行

3

maven 安装好并且配置好环境变量

4

linux服务器,网络通畅

5

已经存在一个可运行的tomcat

方法/步骤
1

设置执行保护#!/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

2

定义变量并清空文件夹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

3

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

4

mvn编译echo '3/5 mvn build ...'mvn clean > $logFilemvn package > $logFileif (( $? )) then     echo 'mvn build Failed!' else     echo 'mvn build Success!'fi

5

发布到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!'

6

以下是整体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!'

注意事项

{}里面的内容为自己的变量,根据自己实际填写

推荐信息