要实现ant可以从svn服务器上检出代码要使用svnant jar文件。
从网上下载svnant 包,下载地址:
http://subclipse.tigris.org/files/documents/906/49042/svnant-1.3.1.zip
将下载好的svnant 解压将 lib目录下的所有jar复制到ant主目录中的 lib目录下。
编写build.xml
要svn task任务可以使用要在build.xml中添加
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" />
完整的xml文件如下:
<project name="dt" basedir=".">
<!--定义属性-->
<property name="src" value="src/main/java" />
<property name="resources" value="src/main/resources"/>
<property name="test" value="test"></property>
<property name="target" value="target"></property>
<property name="main-target" value="target/classes"/>
<property name="test-target" value="target/test-classes"/>
<property name="lib-dir" value="WebContent/WEB-INF/lib"/>
<property name="tomcat.home" value="D:/webapp-server/apache-tomcat-6.0.20"/>
<!--ant lib目录>
<property name="ant-lib-dir" value="D:/apache-ant-1.8.2/lib"/>
<!-- 需指向本地tomcat lib目录 -->
<property name="tomcat-lib" value="D:/webapp-server/apache-tomcat-6.0.20/lib"/>
<!-- svn路径 -->
<property name="urlRepos" value="svn://192.168.1.1o/Project/dt" />
<!-- 定义classpath-->
<path id="classpath">
<fileset dir="${lib-dir}" includes="***.jar"></fileset>
<fileset dir="${tomcat-lib}" includes="***.jar"></fileset>
</path>
<!-- 引用svn task文件,使用svn任务可以使用-->
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" />
<!-- 清理-->
<target name="clean">
<delete dir="${target}"></delete>
</target>
<!-- 初始化-->
<target name="init" depends="clean">
<mkdir dir="${main-target}"/>
<mkdir dir="${test-target}"/>
</target>
<!-- 设置svn相关属性 -->
<svnSetting id="svn.setting" svnkit="true" username="hzl" password="111111" javahl="false" />
<!-- 检出代码 这里使用 export 不是checkout 二者区别 checkout会svn相关信息文件检出,export只是检出最新的文件-->
<target name="checkout" depends="clean">
<svn refid="svn.setting">
<export srcUrl="${urlRepos}" destPath="." force="true"/>
</svn>
</target>
<!-- 编译 -->
<target name="compile" depends="checkout">
<javac srcdir="${src}" destdir="${main-target}" encoding="UTF-8" includeAntRuntime="false">
<classpath refid="classpath"></classpath>
</javac>
<copy todir="${main-target}">
<fileset dir="${resources}">
<exclude name="sql/**"/>
</fileset>
</copy>
</target>
<!-- 打war包 -->
<target name="build" depends="compile">
<war destfile="${target}/dt.war" webxml="WebContent/WEB-INF/web.xml">
<fileset dir="WebContent"></fileset>
<classes dir="${main-target}"></classes>
</war>
<delete dir="${main-target}"></delete>
<delete dir="${test-target}"></delete>
</target>
<!--shutdowntomcat-->
<target name="shutdowntomcat" description="========shutdowntomcat===========">
<exec executable="${tomcat.home}/bin/shutdown.sh" failοnerrοr="false"></exec>
<sleep seconds="10"/>
</target>
<!--startuptomcat-->
<target name="startuptomcat" description="========startuptomcat===========">
<sleep seconds="5"/>
<exec executable="${tomcat.home}/bin/startup.sh" failοnerrοr="false"></exec>
</target>
<!--部署到tomcat下面-->
<target name="deploy" depends="war">
<copy file="${target}/dt.war" todir="${tomcat.home}/webapps" />
</target>
</project>