Ant 初试

来源:互联网 发布:深圳java开发招聘 编辑:程序博客网 时间:2024/06/04 13:05

         Ant是类似Make的工具,因为是基于Java,很好的实现了跨平台性质,它的作者把它解释为An Neat Tool(一个精细的工具),它的具体功能就是实现源程序的Build。其功能的实现就是通过一个build.xml(默认的名字)来进行配置,比如说下面是一个简单的Ant的Build配置文件内容。

        麻雀虽小,但却可以通过对这个简单文件的解读来了解如何使用Ant,如何编写配置文件。

        这个配置文件的作用是实现实现打包,即把原程序编译成.class文件后然后打成jar包。

        build.xml最重要的是编写target标签,用来完成具体的功能,犹如程序中的函数,通过这些target来完成具体的工作。比如例子中含有了Main Build,CleanUp,Initialize,Compile,Jar五个target,模块间的依赖关系通过depends属性给出,表示在本模块执行前必须完成depends属性给出的模块。有这个depends属性实际就给出target的运行顺序,比如例子和容易看出这五个target的执行顺序:Initialize,Compile,Jar,CleanUp,Main Build。

        懂得target标签以及他们之间的依赖关系后就很容易理解整个配置文件了,剩下的就是一些函数的用法了。

         <property name="bin" location="bin" />这个意思相当于定义一个变量bin,它代表的是根目录下的bin文件夹(有location属性定义),后期就可以用来代表${bin}来表示这个文件夹。当然不光是文件夹,还可以是文件或是其他的。

         Initialize模块中主要进行初始化操作,包括先删除目录,然后后建立相关的目录。其中 <copy todir="${src}/message/">是把<fileset dir="./test1/" />指示的目录下文件拷贝到todir所定义的文件下。

        Compile模块是对文件进行编译,用到的命令是javac,并包括了两个基本参数,源目录和目标目录,即把源目录中的.java文件编译后生成的.class输出到目标目录中。

       Jar模块是生成的.class文件打包,这里用到了三个参数,destfile,basedir和manifest。destfile表示生成jar文件地址,basedir说明.class文件的地方,manifest是一个来jar的main函数是什么,比如mainfest存储的内容(格式比较固定)如 Main-Class: test1.Server切忌在最后要敲个回车换行然后保存此文件

       另外如果是命令行下运行Ant命令,如果不加个任何参数就把当前配置下的build.xml为默认配置,如果ant后加参数,最常用的是加个target名,比如可以使用ant Jar,说明就执行Jar 这个target。

       至此Ant的基础知识介绍完了,更深入可以参考Ant的说明文档

<?xml version="1.0" encoding = "UTF-8"?>

<project name="CommunicationServer" default="Main Build" basedir=".">

       <property name="bin" location="bin" />

       <property name="src" location="src" />

       <property name="jardir" location="${bin}/lib" />

       <property name="jarfile" location="./CommunicationServer.jar" />

 

       <target name="Main Build" depends="CleanUp">

              <echo message="Ant at work!" />

       </target>

 

       <target name="Initialize">

              <delete dir="${src}" />

              <delete dir="${bin}" />

              <delete dir="${jardir}" />

              <mkdir dir="${src}" />

              <mkdir dir="${src}/communicationServer" />

              <mkdir dir="${src}/message" />

              <mkdir dir="${bin}" />

              <mkdir dir="${jardir}" />

              <copy todir="${src}/communicationServer/">

                     <fileset dir="./test1/" />

              </copy>

              <copy todir="${src}/message/">

                     <fileset dir="./message/" />

              </copy>

       </target>

 

       <target name="Compile" depends="Initialize">

              <javac srcdir="${src}" destdir="${bin}">

              </javac>

       </target>

 

       <target name="Jar" depends="Compile">

              <jar destfile="${jarfile}" basedir="${bin}" manifest="./server.mf" />

       </target>

 

       <target name="CleanUp" depends="Jar">

              <delete dir="${src}" />

              <delete dir="${bin}" />

              <delete dir="${jardir}" />

       </target>

</project>

    
原创粉丝点击