准备:
1、安装svn
2、安装ant:
下载apache-ant-1.9.3,解压到D:/apache-ant-1.9.3,并配置环境变量ANT_HOME=D:\apache-ant-1.9.3;在path中添加%ANT_HOME%/bin;
3、下载svnant-1.3.0,解压后将lib目录下的所有jar包拷贝到(ant本身不支持svn,所以要有svnant包的支持)
其目录下有个build.xml下载svn源码的例子,可以自己去看一下
4、配置CATALINA_HOME环境变量,否则无法启动tomcat
5、编写build.xml文件(可以放到任何目录下,运行时只需进入到该目录,在cmd下执行ant命令即可):
<?xml version="1.0" encoding="UTF-8"?>
<project default="startuptomcat" name="(项目名称)">
<tstamp>
<format property="NOW" pattern="MMddhhmm"/>
</tstamp>
<property name="web.name" value="(项目名称)"></property>
<property name="web.root" value="${web.name}/WebRoot"></property>
<property name="web.WEB-INF" location="${web.root}/WEB-INF"></property>
<property name="web.lib" location="${web.WEB-INF}/lib"></property>
<property name="tomcat.home" location="F:/Tomcat"></property>
<property name="build.dir" location="${web.name}/build"></property>
<property name="src.dir" location="${web.name}/src"></property>
<property name="build.classes" location="${build.dir}/classes"></property>
<property name="build.war" location="${build.dir}/war"></property>
<!--environment="env" 用${env.xxx}可以引用相应的系统变量或者环境变量等等。如${env.TOMCAT_HOME}就引用TOMCAT_HOME-->
<property environment="env"></property>
<path id="svnant.classpath">
<fileset dir="D:/apache-ant-1.9.3/lib">
<include name="*.jar"/>
</fileset>
</path>
<!-- load the svn task -->
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.classpath" />
<target name="checkoutThis">
<delete dir="${web.name}"></delete>
<svn username="(username)" password="(password)">
<!-- 这里必须为https,不可以是svn。否则url识别不了 -->
<export srcUrl="https://(IP)/svn/(项目名称)/source/(项目名称)" revision="HEAD" destPath="./${web.name}" />
</svn>
</target>
<!--lib所在的路径,及tomcat的lib所在的路径-->
<path id="complie">
<fileset dir="${web.lib}" includes="*.jar"></fileset>
<fileset dir="F:/Tomcat/lib" includes="*.jar"></fileset>
</path>
<target name="init" depends="checkoutThis">
<delete dir="${build.dir}"></delete>
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.war}"/>
<!--将配置文件拷贝过去-->
<copy todir="${build.classes}">
<fileset dir="${src.dir}" excludes="**/*.java"></fileset>
</copy>
<!-- 备份安装包-->
<mkdir dir="${tomcat.home}/webapps/(项目名称)_BAK/${NOW}"/>
<copy todir="${tomcat.home}/webapps/(项目名称)_BAK/${NOW}" file="${tomcat.home}/webapps/(项目名称).war"/>
</target>
<!--编译-->
<!--注意:这里includeAntRuntime必须设置,否则报错。但是设置为false还是on目前还没有搞明白-->
<!--设置编码格式为utf-8:encoding="UTF-8"-->
<target name="complie" depends="init" >
<javac destdir="${build.classes}" srcdir="${src.dir}" encoding="UTF-8" classpathref="complie" includeAntRuntime="false"></javac>
</target>
<!--把编译好的文件打成war包-->
<target name="war" depends="complie">
<war destfile="${build.war}/${web.name}.war" basedir="${build.classes}">
<fileset dir="${web.root}" includes="**/*.*"></fileset>
<lib dir="${web.lib}"></lib>
<webinf dir="${web.WEB-INF}"></webinf>
<classes dir="${build.classes}"></classes>
</war>
</target>
<!-- 停止tomcat服务 -->
<target name="shutdowntomcat" depends="war">
<echo message="停止tomcat服务..." />
<exec executable="(shutdown.bat目录)" failοnerrοr="false"></exec>
<sleep seconds="6"/>
<echo message="tomcat服务已停止" />
</target>
<!--部署到tomcat下面-->
<target name="deploy" depends="shutdowntomcat">
<echo message="部署应用中..." />
<copy file="${build.war}/${web.name}.war" todir="${tomcat.home}/webapps" />
<delete dir="${tomcat.home}/webapps/${web.name}"></delete>
<echo message="部署应用完毕" />
</target>
<!--startuptomcat-->
<target name="startuptomcat" depends="deploy">
<echo message="启动tomcat服务..." />
<exec executable="(startup.bat目录)" failοnerrοr="false"></exec>
<sleep seconds="5"/>
<echo message="项目部署完毕" />
</target>
</project>
6、大功告成,只要执行ant命令,既可以执行以下步骤:从svn下载最新代码--编译--打war包--停tomcat--部署--启动tomcat。实现持续集成与部署