环境:
1,OS:Windows7
2,JDK:jdk1.7
3,Apache Ant:apache-ant-1.9.6
4,svnant1.3.1
5,已安装svn客户端(1.8.x)
步骤:
1,解压apache-ant-1.9.6-bin.zip
2,添加环境变量ANT_HOME,比如C:\apache-ant-1.9.6-bin
3,Path变量添加ant的bin目录,比如%ANT_HOME%\bin
4,解压svnant,把svnant.jar,svnClientAdapter.jar复制%ANT_HOME%\lib
目标流程:
1,从svn导出Java项目
2,编译
3,打包
4,运行
指定ANT脚本文件执行:
ant -f buildFILE.xml
build.xml:
<span style="font-size:12px;"><?xml version="1.0" encoding="UTF-8"?> <project name="ant-svn" default="run" basedir="."> <!--得到当前日期--> <tstamp> <format property="DSTAMP" pattern="yyyyMMdd" locale="zh"/> <format property="TSTAMP" pattern="HHmmss" locale="zh"/> </tstamp> <property name="svnurl" value="svn://ip/folder1/" /> <property name="svn.username" value="uname" /> <property name="svn.password" value="pwd" /> <property name="dir.home" value="${basedir}/testserver/testserver_${DSTAMP}_${TSTAMP}/"></property> <property name="dir.src" value="${dir.home}/src"></property> <property name="dir.dest" value="${dir.home}/bin/classes"></property> <property name="dir.lib" value="${dir.home}/lib"></property> <property name="jarname" value="testprj1.jar"></property> <!--已把svnant.jar,svnClientAdapter.jar导入Ant lib path--> <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpath="${ant.library.dir}"/> <target name="del"><!--删除旧的版本文件夹--> <echo message="delete old version"></echo> <delete includeemptydirs="true" performGCOnFailedDelete="true"> <fileset dir="testserver"> <include name="**/*"/> </fileset> </delete> </target> <!-- 导出export(仅源文件),而不是checkout(带版本控制信息) --> <target name="svnexport" depends="del" > <echo message="export from svn server: ${svnurl}"></echo> <echo message="export destination folder: ${dir.home}"></echo> <svnSetting id="svnparams" username="${svn.username}" password="${svn.password}" javahl="false"/> <svn refid="svnparams" > <export srcUrl="${svnurl}" destPath="${dir.home}" /> </svn> </target><!-- 需要安装 svn客户端并设定javahl="false" ,未下载eclipse svnant插件libsvnjavahl-1.dll,没有编辑智能提示 --> <target name="init" depends="svnexport"> <mkdir dir="${dir.home}/bin/"/> </target> <target name="initclassfolder" depends="init"> <mkdir dir="${dir.dest}"/> </target> <!-- 批量编译 --> <target name="compile" depends="initclassfolder"> <javac srcdir="${dir.src}" destdir="${dir.dest}" encoding="utf-8" debug="true"> <classpath> <fileset dir="${dir.lib}"> <include name="*.jar"/> </fileset> </classpath> </javac> </target> <!-- 复制xml文件 --> <target name="cp" depends="compile"> <copy todir="${dir.dest}" > <fileset dir="${dir.src}"> <include name="**/*.xml"/> </fileset> </copy> </target> <!-- 打包 --> <target name="build" depends="cp"> <jar destfile="${jarname}" basedir="${dir.dest}" ></jar> </target> <!-- 移动 --> <target name="mv" depends="build"> <move todir="${dir.lib}" file="${jarname}"></move> <delete dir="${dir.dest}"></delete><!--删除class文件夹--> </target> <!-- 启动Java程序--> <target name="run" depends="mv"> <java classname="com.test.MainPro" fork="true" dir="${dir.lib}"> <classpath> <fileset dir="${dir.lib}"> <include name="*.jar"/> </fileset> </classpath> </java> </target> </project></span>