一、相關服務器配置說明:
1、Apache httpd與Tomcat服務器集羣配置:http://blog.csdn.net/limingzhong198/article/details/19401443;
2、Ant服務器配置:http://blog.csdn.net/limingzhong198/article/details/19399605;
3、SVN服務器配置:http://blog.csdn.net/limingzhong198/article/details/21801091;
4、Shell編程請參考相關的書籍;
二、關於Ant與Svn服務器的安裝目錄及其準備工作:
1、Ant與Svn的安裝目錄:/usr/local;
2、準備工作:啓動SVN服務器,關閉防火牆,準備好相關的ant與svn的聯合發佈的jar文件;
三、操作過程:
1、在ant目錄下新建目錄並賦予執行權限:
[root@localhost ant]# mkdir ant-svn
[root@localhost ant]# chmod u+x ant-svn
2、svn服務器下一共兩個項目:mvc與test,如下圖所示:
3、在ant-svn目錄下建立Ant發佈所需的build-mvc.xml與build-mvc.properties文件:
build-mvc.properties內容:
- build.version=1.0.0
- svnant.jar=/usr/local/ant/lib/svnant.jar
- svnClientAdapter.jar=/usr/local/ant/lib/svnClientAdapter.jar
- svnjavahl.jar=/usr/local/ant/lib/svnjavahl.jar
- java.lib=/usr/java/jdk1.6.0_30/lib
- debuglevel=source,lines
- target=1.6
- source=1.6
- workspace=/usr/local/ant/ant-svn/workspace
- dist=${workspace}
- build=${workspace}/WebContent/WEB-INF/classes
- lib=${workspace}/WebContent/WEB-INF/lib
- src=${workspace}/src
- web=${workspace}/WebContent
- tomcat1.home=/usr/local/tomcat1
- tomcat2.home=/usr/local/tomcat2
- warfile=${dist}/${ant.project.name}.war
- svnUrl=svn://192.168.31.132/davesvn/mvc
- svnUser=dave
- svnPasswd=davepwd
build.version=1.0.0
svnant.jar=/usr/local/ant/lib/svnant.jar
svnClientAdapter.jar=/usr/local/ant/lib/svnClientAdapter.jar
svnjavahl.jar=/usr/local/ant/lib/svnjavahl.jar
java.lib=/usr/java/jdk1.6.0_30/lib
debuglevel=source,lines
target=1.6
source=1.6
workspace=/usr/local/ant/ant-svn/workspace
dist=${workspace}
build=${workspace}/WebContent/WEB-INF/classes
lib=${workspace}/WebContent/WEB-INF/lib
src=${workspace}/src
web=${workspace}/WebContent
tomcat1.home=/usr/local/tomcat1
tomcat2.home=/usr/local/tomcat2
warfile=${dist}/${ant.project.name}.war
svnUrl=svn://192.168.31.132/davesvn/mvc
svnUser=dave
svnPasswd=davepwd
文件重要語句說明:
3-6行:主要表示的所需要的jar包,包括java的類庫;
8-10行:是配置ant編譯所需要的資源級別和debug級別;
12行:定義臨時存放發佈工程的文件目錄;
15-19行:建立發佈工程的class、lib、src與web主目錄;
20-21行:定義web服務器集羣配置下的tomcat節點路徑;
23行:定義發佈工程的war包名稱;
25-27行:定義用於抓取svn服務器工程代碼的svn服務路徑,以及操作svn的用戶名及其密碼;
build-mvc.xml內容:
- <?xml version="1.0" encoding="UTF-8"?>
- <project basedir="." name="mvc" default="auto">
- <property file="build-mvc.properties" />
- <path id="svnant.lib">
- <pathelement location="${svnjavahl.jar}" />
- <pathelement location="${svnant.jar}" />
- <pathelement location="${svnClientAdapter.jar}" />
- </path>
- <path id="java6">
- <fileset dir="${java.lib}">
- <include name="**/*.jar" />
- </fileset>
- </path>
- <path id="project.classpath">
- <pathelement location="${build}" />
- <fileset dir="${lib}" />
- </path>
- <target name="clear">
- <delete dir="${workspace}" />
- <delete dir="${tomcat.home}/work/Catalina/localhost/${ant.project.name}" />
- <delete dir="${tomcat.home}/webapps/${ant.project.name}" />
- <delete dir="${tomcat.home}/webapps/${ant.project.name}.war" />
- </target>
- <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svnant.lib" />
- <target name="svn" depends="clear">
- <mkdir dir="${workspace}"/>
- <svn username="${svnUser}" password="${svnPasswd}" javahl="false">
- <checkout url="${svnUrl}" destPath="${workspace}" />
- </svn>
- </target>
- <target name="compile" depends="svn" description="======compile project======">
- <mkdir dir="${build}" />
- <copy includeemptydirs="false" todir="${build}">
- <fileset dir="${src}" excludes="**/*.java"/>
- </copy>
- <javac includejavaruntime="true" debug="true" debuglevel="${debuglevel}" destdir="${build}" source="${source}" target="${target}" encoding="utf-8">
- <src path="${src}" />
- <classpath>
- <path refid="project.classpath">
- </path>
- <path refid="java6">
- </path>
- </classpath>
- </javac>
- </target>
- <target name="war" depends="compile" description="======compress j2ee war file======">
- <mkdir dir="${dist}" />
- <war destfile="${warfile}" webxml="${web}/WEB-INF/web.xml">
- <fileset dir="${web}">
- <include name="**/*.jsp"/>
- <include name="**/*-servlet.xml"/>
- <include name="**/applicationContext.xml"/>
- </fileset>
- <lib dir ="${lib}"/>
- <classes dir ="${build}"/>
- </war>
- </target>
- <target name="shutdowntomcat" description="========shutdowntomcat===========">
- <exec executable="${tomcat1.home}/bin/shutdown.sh" failonerror="false"></exec>
- <sleep seconds="10"/>
- <exec executable="${tomcat2.home}/bin/shutdown.sh" failonerror="false"></exec>
- <sleep seconds="10"/>
- <echo message="it is secuessful of tomcat's shutdownning !" />
- </target>
- <target name="startuptomcat" description="========startuptomcat===========">
- <sleep seconds="5"/>
- <exec executable="${tomcat1.home}/bin/startup.sh" failonerror="false"></exec>
- <sleep seconds="5"/>
- <exec executable="${tomcat2.home}/bin/startup.sh" failonerror="false"></exec>
- <echo message="it is secuessful of tomcat's startuping !" />
- </target>
- <target name="deploy" depends="war">
- <copy file="${warfile}" todir="${tomcat1.home}/webapps" />
- <copy file="${warfile}" todir="${tomcat2.home}/webapps" />
- <echo message="it is secuessful of project deploy !" />
- </target>
- <target name="auto" depends="shutdowntomcat,deploy,startuptomcat">
- <echo message="DONE!!!!" />
- </target>
- </project>
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." name="mvc" default="auto">
<property file="build-mvc.properties" />
<path id="svnant.lib">
<pathelement location="${svnjavahl.jar}" />
<pathelement location="${svnant.jar}" />
<pathelement location="${svnClientAdapter.jar}" />
</path>
<path id="java6">
<fileset dir="${java.lib}">
<include name="**/*.jar" />
</fileset>
</path>
<path id="project.classpath">
<pathelement location="${build}" />
<fileset dir="${lib}" />
</path>
<target name="clear">
<delete dir="${workspace}" />
<delete dir="${tomcat.home}/work/Catalina/localhost/${ant.project.name}" />
<delete dir="${tomcat.home}/webapps/${ant.project.name}" />
<delete dir="${tomcat.home}/webapps/${ant.project.name}.war" />
</target>
<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svnant.lib" />
<target name="svn" depends="clear">
<mkdir dir="${workspace}"/>
<svn username="${svnUser}" password="${svnPasswd}" javahl="false">
<checkout url="${svnUrl}" destPath="${workspace}" />
</svn>
</target>
<target name="compile" depends="svn" description="======compile project======">
<mkdir dir="${build}" />
<copy includeemptydirs="false" todir="${build}">
<fileset dir="${src}" excludes="**/*.java"/>
</copy>
<javac includejavaruntime="true" debug="true" debuglevel="${debuglevel}" destdir="${build}" source="${source}" target="${target}" encoding="utf-8">
<src path="${src}" />
<classpath>
<path refid="project.classpath">
</path>
<path refid="java6">
</path>
</classpath>
</javac>
</target>
<target name="war" depends="compile" description="======compress j2ee war file======">
<mkdir dir="${dist}" />
<war destfile="${warfile}" webxml="${web}/WEB-INF/web.xml">
<fileset dir="${web}">
<include name="**/*.jsp"/>
<include name="**/*-servlet.xml"/>
<include name="**/applicationContext.xml"/>
</fileset>
<lib dir ="${lib}"/>
<classes dir ="${build}"/>
</war>
</target>
<target name="shutdowntomcat" description="========shutdowntomcat===========">
<exec executable="${tomcat1.home}/bin/shutdown.sh" failοnerrοr="false"></exec>
<sleep seconds="10"/>
<exec executable="${tomcat2.home}/bin/shutdown.sh" failοnerrοr="false"></exec>
<sleep seconds="10"/>
<echo message="it is secuessful of tomcat's shutdownning !" />
</target>
<target name="startuptomcat" description="========startuptomcat===========">
<sleep seconds="5"/>
<exec executable="${tomcat1.home}/bin/startup.sh" failοnerrοr="false"></exec>
<sleep seconds="5"/>
<exec executable="${tomcat2.home}/bin/startup.sh" failοnerrοr="false"></exec>
<echo message="it is secuessful of tomcat's startuping !" />
</target>
<target name="deploy" depends="war">
<copy file="${warfile}" todir="${tomcat1.home}/webapps" />
<copy file="${warfile}" todir="${tomcat2.home}/webapps" />
<echo message="it is secuessful of project deploy !" />
</target>
<target name="auto" depends="shutdowntomcat,deploy,startuptomcat">
<echo message="DONE!!!!" />
</target>
</project>
文件重要語句說明:
3行:定義project的相關信息,包括名稱,默認處理的target等信息;
4行:定義ANT引用的屬性文件;
6行:定義了Svn所需要用到的jar包位置;
12行:定義java類庫文件lib;
17行:定義編譯所需要的文件目錄及其使用的lib包;
22行:定義清理相關文件目錄的target;
29行:定義svn抽取代碼的相關配置任務;
31行:定義svn抽取代碼的target;
38行:定義編譯的target;
55行:根據相關配置生成發佈的war;
68行:定義關閉tomcat集羣中的節點target,從代碼中可以看出,定義了兩個tomcat節點;
76行:定義啓動tomcat集羣中的節點target,從代碼中可以看出,定義了兩個tomcat節點;
84行:定義發佈工程的的target;
90行:定義Ant執行工作的開始target;
注:相關標籤的含義請查閱其他的相關資料。
4、在Ant-Svn目錄下建立一個臨時存放編譯和發佈工作的workspace目錄:
[root@localhost ant-svn]# mkdir workspace
[root@localhost ant-svn]# chmod u+x workspace
5、建立批量執行發佈命令的Shell程序文件batch-ant.sh:
- #!/bin/sh
- echo "=========================================================================" >> /usr/local/ant/ant-svn/res.log
- echo "============================ batch-ant-exe =========================" >> /usr/local/ant/ant-svn/res.log
- echo "=========================================================================" >> /usr/local/ant/ant-svn/res.log
- 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
#!/bin/sh
echo "=========================================================================" >> /usr/local/ant/ant-svn/res.log
echo "============================ batch-ant-exe =========================" >> /usr/local/ant/ant-svn/res.log
echo "=========================================================================" >> /usr/local/ant/ant-svn/res.log
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
[root@localhost ant-svn]# touch res.log
7、執行批處理Shell腳本batch-ant.sh文件:
[root@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 !
- clear:
- [delete] Deleting directory /usr/local/ant/ant-svn/workspace
- 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
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 !
clear:
[delete] Deleting directory /usr/local/ant/ant-svn/workspace
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腳本中沒有處理異常。
http://blog.csdn.net/limingzhong198/article/details/19477823