build.xml典型设置

本文档详细介绍了Ant构建文件build.xml的配置,包括初始化、编译、生成Javadoc、打包成Jar和部署等步骤。通过预定义属性、设置Classpath、编译源代码、生成文档和打包,展示了如何创建一个完整的Java项目构建流程。

<?xml version="1.0" encoding="gb2312"?>

<!--//默认调用任务“all”-->

<project default="all">

  <!--  //预定义,有程序里面的常量类似。默认路径为应用程序的当前路径。-->

    <property name="confDir" location="conf" /> <property name="srcDir" location="src" />
    <property name="src_temp" location="src_temp" />
    <property name="buildDir" location="classes" />
    <property name="distDir" location="release" />
    <property name="libDir" location="E:/gftech/library" />
    <property name="docDir" location="doc/doc" />
    <property name="doc_temp" location="doc_temp"/>
    <property name="commonDir" location="E:/gftech/project/common" />
    <property name="smpDir" location="E:/gftech/project/smp" />
    <property name="project.name" location="数据处理系统" />
    <property name="project.version" location="1.0" />
    <property name="encoding" location="gb2312" />

 

 <!--
 //定义Claspath,指定外部引用的类。其中fileset指定外部包所在的目录,include指定
 所要引用的外部包文件,这里指的是该目录下的所有Jar文件-->

    <path id="classpath">
       <fileset dir="${libDir}">
           <include name="**/*.jar" />
       </fileset>
    </path>

 

  <!--
  //初始化任务。通常会在这里创建目录、文件等准备工作,为编译或生成文档做准备
  -->

    <target name="init">

       <tstamp /> <!--//指定时间戳-->

       <mkdir dir="${src_temp}" />
       <mkdir dir="${buildDir}" />
       <mkdir dir="${distDir}" />
       <mkdir dir="${doc_temp}" />
       <delete>
           <fileset dir="${distDir}">
              <exclude name="**/cvs/*.*" />
              <exclude name="**/*.bat"/>
           </fileset>
           <fileset dir="${docDir}">
              <exclude name="**/cvs/*.*" />
           </fileset>
       </delete>

       <copy todir="${src_temp}">
           <fileset dir="${srcDir}">
              <include name="**/*.java" />
              <exclude name="**/test/*.java" />
           </fileset>
           <fileset dir="${commonDir}/src">
              <include name="**/*.java" />
              <exclude name="**/test/*.java" />
           </fileset>

           <fileset dir="${smpDir}/src">
              <include name="**/*.java" />
              <exclude name="**/test/*.java" />
           </fileset>
       </copy>

    </target>

 

  <!--
  //对源文件进行编译,在编译时指定Classpath,并指test目录下的所有java文件排除?
  -->

    <target name="compile" depends="init">
       <javac srcdir="${src_temp}" destdir="${buildDir}"
       excludes="**/test/**/*.java">
           <classpath refid="classpath" />
       </javac>
    </target>

 

 <!-- //生成Javadoc文档-->

    <target name="doc" depends="init" description="auto generate document">

       <javadoc packagenames="*" destdir="${doc_temp}"
       sourcepath="${src_temp}" author="true" version="true" use="true"
       splitindex="true" windowtitle="自然语言查询演示系统API文档">

           <classpath refid="classpath" />
           <docTitle>
              <![CDATA[
              <h1>自然语言查询演示系统(build${DSTAMP})</h1> ]]>
           </doctitle>
           <bottom>
              <![CDATA[ <div algin="center">Copyright &#169; 2006
              www.pushget.com, All Rights Reserved.</div>]]>
           </bottom>
       </javadoc>

    </target>

 

<!--//打包生成Jar文件-->

    <target name="jar" depends="compile">
       <jar destfile="${distDir}/dh.jar" basedir="${buildDir}">

           <!--
           //指定Manifest文件的创建者、公司和运行时的主类(这个最关键?
           ?->

           <manifest>
              <attribute name="Built-By" value="sinboy" />
              <attribute name="Company" value="PUSHGET.Inc" />
              <attribute name="Main-Class"
              value="com.gftech.biz.dh.DHMain" />

           </manifest>

<!--
//指定要和生成的Jar文件打包到一块的外部引用包。这样生成的Jar文件不但包括本身的类
文件,也包括外部引用的类文件,它的一个最大好处就是,放到任何地方不需要再配置外部
引用包,就可直接运行,使用起来比较方便,不用担心考来考去时丢文件

-->

           <zipfileset src="${libDir}/classes12.jar" />
           <zipfileset src="${libDir}/commons-collections-3.1.jar" />
           <zipfileset src="${libDir}/commons-lang-2.1.jar" />
           <zipfileset src="${libDir}/log4j-1.2.12.jar" />
           <zipfileset src="${libDir}/jdom.jar" />
           <zipfileset src="${libDir}/comm.jar"/>
           <zipfileset src="${libDir}/derby.jar"/>
           <zipfileset src="${libDir}/derbytools.jar"/>
           <zipfileset src="${libDir}/jamon.jar"/>

       </jar>

<!--//把源文件进行打包-->

       <jar destfile="${distDir}/dh-src-${DSTAMP}.jar"
       basedir="${src_temp}" />

    </target>

 

  <!--布署。在这里是生成一个完全可以独立运行的文件包-->

    <target name="deploy">
       <copy todir="${docDir}">
           <fileset dir="${doc_temp}">
              <include name="**/*" />
           </fileset>
       </copy>

 

       <mkdir dir="${distDir}/dh" />
       <mkdir dir="${distDir}/dh/conf"/>
       <mkdir dir="${distDir}/dh/database"/>
       <mkdir dir="${distDir}/dh/test"/>
       <copy  file="${distDir}/dh.jar" todir="${distDir}/dh" />
      <copy todir="${distDir}/dh/conf">
         <fileset dir="${confDir}">
           <exclude name="**/*"/>
         </fileset>
      </copy>
       <copy todir="${distDir}/dh/database">
           <fileset dir="database">
              <exclude name="**/cvs/*"/>
           </fileset>
       </copy>
       <copy todir="${distDir}/dh/test">
           <fileset dir="test">
              <exclude name="**/cvs/*"/>
           </fileset>
       </copy>
       <copy file="win32com.dll" todir="${distDir}/dh"/>
       <copy file="javax.comm.properties" todir="${distDir}/dh"/>
       <zip destfile="${distDir}/dhDemo.rar">
        <fileset dir="${distDir}/dh">
           <exclude name="**/cvs/*"/>
       </fileset>
       </zip>

    </target>


<!--把临时文件清除掉-->

    <target name="clean" description="clean classes dir">
       <delete dir="${src_temp}" />
       <delete dir="${buildDir}" />
       <delete dir="${doc_temp}" />
    </target>

 <!--
 指定任务all依赖的其他任务。Ant会自动根据依赖关系,从最先被依赖的任务开始起执
 行-->

    <target name="all" depends="jar,deploy,clean " description="complete all target" />

</project>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值