在java开发代码中,整理版本有多种方法,下面要介绍的是使用ant从指定目录抽取版本包和利用ant抽取从svn上直接抽取版本包文件
1.首先安装ant工具,类似于JDK的安装,ant也需要设置ANT_HOME环境变量和PATH环境变量。这里就不细说了
2.编辑build.xml文件,也是版本控制最重要的一部分。以下给出我的一个实例
<?xml version="1.0" encoding="UTF-8"?><!-- default 表示默认的运行目标,此属性必须;basedir表示项目的基准目录。此处是当前目录,name表示项目名--><project default="SmartESB" name="SmartESB" basedir="."><description>SmartESB</description><!--property 都是设置一些变量的值--><property name="src" location="src" /><property name="console" location="console" /><property name="console_addtion" location="console_addtion" /><property name="dest" location="buildAP1" /><property name="esbdest" location="${dest}/SmartESB" /><property name="build.classes.dir" location="${esbdest}/classes" /><property name="build.classes.console" location="${esbdest}/classes_console" /><property name="web.lib.dir" location="lib" /><property file="build.properties" /><!-- 设置path路径,lib下所有的jar文件--><path id="classpath"><fileset dir="${web.lib.dir}"><include name="*.jar" /></fileset></path><!-- 删除buildAP1 先删除目标文件夹,保证能重复生成版本包--><target name="clean"><delete dir="${dest}" /></target><!-- 创建class目录和console目录 depends决定依赖关系,表示在depends后执行--><target name="init" depends="clean"><tstamp /><mkdir dir="${build.classes.dir}" /><mkdir dir="${build.classes.console}" /></target><!-- 复制bin、lib、middleware文件夹中的内容到SmartESB文件夹,exclude 目录排除在外--><target name="copy" depends="init"><copy todir="${esbdest}"><fileset dir="${basedir}"><include name="bin/" /><include name="lib/" /><include name="middleware/" /><exclude name="middleware/tomcat/webapps/esbconsole/WEB-INF/classes/" /></fileset></copy></target><!-- 编译src文件夹中的代码,class文件生成到classes目录--><target name="compile_source" depends="copy"><echo>运行平台源代码构建</echo><javac destdir="${build.classes.dir}" encoding="utf-8" debug="on" includeAntRuntime="false"><src path="${src}" /><classpath refid="classpath" /></javac></target><!--编译console目录中java文件成class文件 --><target name="compile_console" depends="compile_source"><echo>console平台源代码构建</echo><javac destdir="${build.classes.console}" encoding="utf-8" debug="on" fork="false" nowarn="on" debuglevel="lines,vars,source"><src path="${src}" /><src path="${console_addtion}" /><src path="${console}" /><classpath refid="classpath" /></javac><!--把console文件夹内容复制到console的class目录 --><copy todir="${build.classes.console}"><fileset dir="${basedir}/console"><include name="esb/" /><include name="esbconsole/" /><include name="META-INF/" /></fileset></copy><jar destfile="${esbdest}/middleware/tomcat/webapps/esbconsole/WEB-INF/lib/esb_all.jar" update="true" basedir="${build.classes.console}" /><copy todir="${esbdest}/middleware/tomcat/webapps/esbconsole/WEB-INF/lib/" overwrite="true"><fileset dir="${basedir}/lib"><include name="BC_14_122.jar" /><include name="commons-net-3.3.jar" /><include name="esb_flow.jar" /><include name="srcb-security.jar" /></fileset></copy><delete dir="${build.classes.console}" /></target><target name="SmartESB_AP1" depends="compile_console" description="building SmartESB project"><copy todir="${esbdest}" overwrite="true" encoding="UTF-8" outputencoding="UTF-8"><fileset dir="${basedir}"><include name="configs/" /><include name="middleware/tomcat/webapps/esbconsole/WEB-INF/classes/" /></fileset><filterset><filtersfile file="AP1.properties" /></filterset></copy><!-- zip压缩SmartESB文件夹成SmartESB_AP1.zip 并删除SmartESB文件夹--><echo>building SmartESB project</echo><zip destfile="${dest}/SmartESB_AP1.zip" basedir="${dest}/"><include name="SmartESB/" /></zip><delete dir="${esbdest}" /></target></project> |
3.执行build.xml文件,执行方法可以在cmd运行窗口执行 "ant -f build.xml" 或者新建bat脚本,脚本内容为
pause
echo on
@set JAVA_HOME=C:\Users\zhongwei\AppData\Local\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013
call ant -f build.xml
pause
直接双击执行bat文件,也能抽取版本包。
注意:如果要从SVN上取文件,则需要指定对应的版本号和SVN的用户和密码
配置如下:
<target name="export">
<echo>Start export patchs from svn to ${export.dir}......</echo>
<!--username 为SVN的用户名,password为密码 revision为提交SVN的版本号,其他没什么区别-->
<svn username="${svnant.repository.user}" password="${svnant.repository.passwd}">
<export srcUrl="${repo.url}/SmartESB/src/com/dc/esb/container/service/ServiceIdentifyService.java" destPath="${export.dir}/SmartESB/src/com/dc/esb/container/service/ServiceIdentifyService.java" revision="309"/>
</svn>
<echo>Export finished</echo>
<copy todir="${export.dir}/SmartESB/" file="${basedir}/build_ZL.xml"/>
</target>
以上就是ant配置的一些说明。