date >> /usr/local/ant/ant-svn/res.log
echo "============================ init the env start =====================" >> /usr/local/ant/ant-svn/res.log
export JAVA_HOME=/usr/java/jdk1.6.0_30
export JAVA_BIN=/usr/java/jdk1.6.0_30/bin
export ANT_HOME=/usr/local/ant
export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN ANT_HOME PATH CLASSPATH
echo "============================ init the env end ======================" >> /usr/local/ant/ant-svn/res.log
echo "============================ close apache the env start =============" >> /usr/local/ant/ant-svn/res.log
/usr/local/apache/bin/apachectl -k stop
echo "============================ close apache the env end =============" >> /usr/local/ant/ant-svn/res.log
date >> /usr/local/ant/ant-svn/res.log
echo "============================ execute the ant cmd start =============" >> /usr/local/ant/ant-svn/res.log
cd /usr/local/ant/ant-svn
ant -buildfile build-mvc.xml
echo &date
#sleep 1m
#echo &date
#ant -buildfile build-test.xml
#echo "=========================== execute the ant cmd end ==== =========" >> /usr/local/ant/ant-svn/res.log
#date >> /usr/local/ant/ant-svn/res.log
echo "============================ open apache the env start ==============" >> /usr/local/ant/ant-svn/res.log
/usr/local/apache/bin/apachectl -k start
echo "============================ open apache the env end ==============" >> /usr/local/ant/ant-svn/res.log
文件重要语句说明:
9-16行:引入相关的环境变量,包括java、ant;
20行:关闭apache tomcat集群服务器;
26行:ant命令,执行build-mvc.xml文件内容;
35行:启动apache tomcat集群服务器;
注:shell编程请参阅其他资料。
6、建立监控结果文件:res.log
[iyunv@localhost ant-svn]# touch res.log
7、执行批处理Shell脚本batch-ant.sh文件:
[iyunv@localhost ant-svn]# sh batch-ant.sh
显示结果:
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
httpd (no pid file) not running
Buildfile: /usr/local/ant/ant-svn/build-mvc.xml
shutdowntomcat:
[exec] Feb 19, 2014 7:04:09 AM org.apache.catalina.startup.Catalina stopServer
[exec] SEVERE: Catalina.stop:
[exec] java.net.ConnectException: Connection refused
[exec] at java.net.PlainSocketImpl.socketConnect(Native Method)
[exec] at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
[exec] at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
[exec] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
[exec] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
[exec] at java.net.Socket.connect(Socket.java:529)
[exec] at java.net.Socket.connect(Socket.java:478)
[exec] at java.net.Socket.<init>(Socket.java:375)
[exec] at java.net.Socket.<init>(Socket.java:189)
[exec] at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:422)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[exec] at java.lang.reflect.Method.invoke(Method.java:597)
[exec] at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:338)
[exec] at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416)
[exec] Feb 19, 2014 7:04:20 AM org.apache.catalina.startup.Catalina stopServer
[exec] SEVERE: Catalina.stop:
[exec] java.net.ConnectException: Connection refused
[exec] at java.net.PlainSocketImpl.socketConnect(Native Method)
[exec] at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
[exec] at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
[exec] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
[exec] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
[exec] at java.net.Socket.connect(Socket.java:529)
[exec] at java.net.Socket.connect(Socket.java:478)
[exec] at java.net.Socket.<init>(Socket.java:375)
[exec] at java.net.Socket.<init>(Socket.java:189)
[exec] at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:422)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[exec] at java.lang.reflect.Method.invoke(Method.java:597)
[exec] at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:338)
[exec] at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416)
[echo] it is secuessful of tomcat's shutdownning !
svn:
[mkdir] Created dir: /usr/local/ant/ant-svn/workspace
[svn] Deprecated attribute 'username'. This attribute will disappear with SVNANT 1.3.2. Use svnSetting instead.
[svn] Deprecated attribute 'password'. This attribute will disappear with SVNANT 1.3.2. Use svnSetting instead.
[svn] Deprecated attribute 'javahl'. This attribute will disappear with SVNANT 1.3.2. Use svnSetting instead.
compile:
[mkdir] Created dir: /usr/local/ant/ant-svn/workspace/WebContent/WEB-INF/classes
[javac] /usr/local/ant/ant-svn/build-mvc.xml:44: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 4 source files to /usr/local/ant/ant-svn/workspace/WebContent/WEB-INF/classes
war:
[war] Building war: /usr/local/ant/ant-svn/workspace/mvc.war
deploy:
[copy] Copying 1 file to /usr/local/tomcat1/webapps
[copy] Copying 1 file to /usr/local/tomcat2/webapps
[echo] it is secuessful of project deploy !
startuptomcat:
[echo] it is secuessful of tomcat's startuping !
auto:
[echo] DONE!!!!
BUILD SUCCESSFUL
Total time: 48 seconds
Wed Feb 19 07:04:52 PST 2014
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
文件重要语句说明:
1-2行:执行ant文件的关闭apache tomcat 集群服务器配置的结果;
3行:执行ant命令;
5行:执行名为shutdowntomcat的target标签,关闭tomcat服务,包括tomcat1与tomcat2两个节点服务;
8、27行:表示在关闭tomcat服务时,原本tomcat服务根本没有打开,所以在关闭时提示连接被拒绝;
46行:执行名为clear的target标签;
49行:执行名为svn的target标签,从svn服务器获取相关项目的代码;
55行:执行名为compile的target标签,编译工程;
60行:执行名为war的target标签,生成发布的war包;
63行:执行名为deploy的target标签,发布工程;
68行:执行名为startuptomcat的target标签,启动tomcat服务,包括tomcat1与tomcat2两个节点服务;
71行:执行名为auto的target标签,实际上只是一个执行入口;
74行:表示执行ant命令成功;
78行:执行ant文件的启动apache tomcat 集群服务器配置的结果;
8、在浏览器中输入:http://192.168.31.132/mvc/index.jsp,结果如下图所示:
从图中可以看出发布成功。
注:1、以上过程在Centos 6.3所属32位系统下调试通过;
2、shell脚本中没有处理异常。