Ant整合svnant(三)
3、构建模板示例三(ant整合svnant)
实现ant可以从svn服务器上检出代码要使用svnant jar文件。
从网上下载svnant 包,下载地址:
http://subclipse.tigris.org/files/documents/906/49042/svnant-1.3.1.zip
将下载好的svnant 解压将 lib目录下的所有jar复制到ant主目录中的 lib目录下。
build.properties文件:
1 #svn信息 2 svn.UserName=zhangwj 3 svn.UserPassword=zhangwj123 4 #工程svn源码目录 5 svn.URL=svn://116.228.187.195/BSTPRJ/BSTWEBFB/2-SRC/01-Trunk/UCCenter2 6 #工程svn源码版本号 7 svn.ver=0.1 8 9 10 #项目名称 11 name=UCCenter2 12 13 #tomcat位置 14 tomcat.home=D:\apache-tomcat-6.0.36
build.xml文件:
1 <?xml version="1.0" encoding="gbk"?> 2 <project basedir="." default="publish" name="package project"> 3 4 <target name="init" > 5 <echo message="设置初始化打war包需要的路径变量..."/> 6 <!-- <property name="name" value="UCCenter2"/>--> 7 <property file="build.properties" /> 8 <property name="root" value="."/> 9 10 <property name="src" value="${root}/${name}/src"/> 11 <property name="lib" value="${root}/${name}/WebRoot/WEB-INF/lib"/> 12 <property name="webapp" value="${root}/${name}/WebRoot"/> 13 14 <property name="build.dest" value="${root}/AntBuild/${name}"/> 15 <property name="build.lib" value="${root}/AntBuild/${name}/WEB-INF/lib"/> 16 <property name="build.classes" value="${root}/AntBuild/${name}/WEB-INF/classes"/> 17 <property name="build.javadocs" value="${root}/AntBuild/doc"/> 18 <property name="jar.dest" value="${root}/AntBuild/jar"/> 19 <property name="war.dest" value="${root}/AntBuild/war"/> 20 21 <!--<property name="tomcat.home" value="D:\apache-tomcat-6.0.36"/> --> 22 23 <!--编译java源文件所需的jar文件 --> 24 <path id="classpath"> 25 <fileset dir="${lib}"> 26 <include name="**/*.jar"/> 27 </fileset> 28 </path> 29 30 <!-- 引用svn task文件,使用svn任务可以使用--> 31 <path id="ant.svn.classpath"> 32 <fileset dir="${ant.home}/lib"> 33 <include name="*.jar" /> 34 </fileset> 35 </path> 36 <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="ant.svn.classpath"/> 37 38 <!-- 设置svn相关属性 --> 39 <svnSetting id="svn.setting" svnkit="true" username="${svn.UserName}" password="${svn.UserPassword}" javahl="false" /> 40 41 </target> 42 43 <target name="prepare" depends="init"> 44 <echo message="创建打包需要的路径,拷贝源文件到打包路径下..."/> 45 <mkdir dir="${build.dest}"/> 46 <mkdir dir="${build.lib}"/> 47 <mkdir dir="${build.classes}"/> 48 <mkdir dir="${build.javadocs}"/> 49 <mkdir dir="${jar.dest}"/> 50 <mkdir dir="${war.dest}"/> 51 </target> 52 53 <target name="checkout" depends="prepare"> 54 <echo message="正在从svn下载文件..."/> 55 <svn refid="svn.setting"> 56 57 <export srcUrl="${svn.URL}" destPath="${root}/${name}" force="true" /> 58 </svn> 59 <copy todir="${build.dest}"> 60 <fileset dir="${webapp}"/> 61 </copy> 62 </target> 63 64 <target name="compile" depends="checkout"> 65 <echo message="编译java文件,拷贝properties属性配置文件到编译后的路径下"/> 66 <javac srcdir="${src}" destdir="${build.classes}"> 67 <classpath refid="classpath"/> 68 </javac> 69 <copy todir="${build.classes}"> 70 <fileset dir="${src}"> 71 <include name="**/*.properties"/> 72 </fileset> 73 </copy> 74 </target> 75 76 <target name="antjar" depends="compile"> 77 <echo message="开始进行打jar包..."/> 78 <jar destfile="${jar.dest}/${name}.jar" basedir="${build.classes}" /> 79 </target> 80 81 <target name="antwar" depends="antjar"> 82 <echo message="开始进行打war包..."/> 83 <delete dir="${build.src}"/> 84 <war warfile="${war.dest}/${name}.war" webxml="${build.dest}/WEB-INF/web.xml"> 85 <!--<lib dir="${buildwar.lib}"/> --> 86 <classes dir="${build.classes}"/> 87 <fileset dir="${build.dest}"/> 88 </war> 89 </target> 90 91 <target name="publish" depends="antwar,clean"> 92 <echo message="发布war包至tomcat目录下..."/> 93 <copy todir="${tomcat.home}/webapps"> 94 <fileset dir="${war.dest}"> 95 <include name="**/*.war"/> 96 </fileset> 97 </copy> 98 </target> 99 100 <target name="clean" depends="init"> 101 <echo message="清除打包用临时文件..."/> 102 <delete> 103 <fileset dir="${build.classes}" includes="**/*.classes"/> 104 </delete> 105 <delete dir="${build.dest}"/> 106 <delete dir="${root}/${name}"/> 107 </target> 108 109 <!--shutdowntomcat--> 110 <target name="shutdowntomcat"> 111 <echo message="shutdowntomcat..."/> 112 <exec executable="${tomcat.home}/bin/shutdown.sh" failonerror="false"></exec> 113 <sleep seconds="10"/> 114 </target> 115 116 <!--startuptomcat--> 117 <target name="startuptomcat"> 118 <echo message="startuptomcat..."/> 119 <sleep seconds="5"/> 120 <exec executable="${tomcat.home}/bin/startup.sh" failonerror="false"></exec> 121 </target> 122 123 </project>
进入cmd执行ant