昨天老大让我写一个shell脚本,实现以下功能:
1. 自动checkout svn服务器上的project
2. 自动build/package maven project_name.war 包
3. 自动拷贝project_name.war 包到$TOMCAT_HOME/webapps/目录
4. 自动启动$TOMCAT_HOME/bin/catalina.sh run
宗旨:一切实现自动化,就是这么简单。
技术的力量是无穷的。这句话放在这里那简直就是相当的恰当,不过细想一下,有那么简单吗?
NO,并非那么简单,看了我做的时期,你就知道为啥一个小小的shell脚本会让给你2个工作日。
首先,你得要访问Liunx服务器的客户端软件(如我最喜欢用的XShell)
----后续
shell代码
#!/bin/sh
#auto checkout svn, auto build maven, auto cp project, auto start tomcat
COMMON_DIR=/var/www/demo/installed
JAVA_HOME=$COMMON_DIR/jdk1.6.0_20/
export JAVA_HOME
TOMCAT_HOME=$COMMON_DIR/apache-tomcat-6.0.26
M2_HOME=$COMMON_DIR/apache-maven-2.2.1/
SVN_HOME=/usr/local/svn/
SVN_SERVER=http://prosvn.shrd.demo.cn/svn/demo/trunk/
CHECKOUT_FOLDER="demo"`date +%Y%m%d%H%m`
CURRENT_DIR=/var/www/demo/autobuild
cd $CURRENT_DIR/checkout/
mkdir $CHECKOUT_FOLDER
cd $CHECKOUT_FOLDER/
svn checkout $SVN_SERVER --username xiaolinjava --password xiaolinjava
cd trunk/
mvn clean package -DJAVA_HOME=$JAVA_HOME -Denv.type=dev -Dmaven.test.skip=true
rm -rf $TOMCAT_HOME/webapps/demo
cp -R target/demo-1.0-SNAPSHOT $TOMCAT_HOME/webapps/demo/
$TOMCAT_HOME/bin/catalina.sh stop
$TOMCAT_HOME/bin/catalina.sh start
echo "start tomcat success!!!" > cd ../../log/log.log