环境:
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,运行
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>