Ant使用入门

Apache Ant是一个基于Java的构建工具。从理论上讲,也是一种类似于Make的工具,只是去除了Make工具的缺点。简单的说,Ant是一个基于Java,并且主要用于Java工程的构建工具。Ant本意是Another Neat Tool,也就是另一种整洁的工具,取首字符就是Ant。


    * 下载并安装ant

1.下载Ant(http://www.apache.org),现在的最新版本是1.7.0,要下载的文件名为apache-ant-1.7.0-bin.zip 2.解压缩文件,放到指定的系统目录中,例如C:\Program Files\apache-ant-1.7.0 3.设置系统环境变量path,以便从命令行使用,设置方法为在已有的path值后添加C:\Program Files\apache-ant-1.7.0\bin(注意前面用分毫隔开) 安装完成后可通过ant -version来查看是否安装成功,在控制台输入ant -version,会显示Apache Ant version 1.7.0 compiled on December 13 2006,表示安装成功



    * 使用ant

1.首先建立一个简单的project,让我们从hello ant!开始吧,该项目名称为FirstAnt,仅包含AntTest一个java文件,main函数的功能就是输出Hello ant! 代码如下:


Java代码

package ych.antest;  
public class AntTest  
{      
    public static void main(String[] args)  
    {  
        System.out.println("Hello ant!");  
    }  


2.现在我们开始构建Ant,在d盘创建目录AntTest(命名随意),在AntTest目录下创建目录src(存放项目源代码,把项目的源代码拷到该目录下),在AntTest目录下创建ant的build文件build.xml,build.xml文件的内容如下:

Java代码

<?xml version="1.0"?>  
<project name="FirstAnt" default="archive">  
  <description>Compiles a simple program named AntTest</description>  
  <target name="init" description="create the directories">  
    <mkdir dir="classes"/>  
    <mkdir dir="dist"/>  
  </target>  
  <target name="compile" depends="init" description="Compiles the source code">  
    <javac srcdir="src" destdir="classes"/>  
  </target>  
  <target name="archive" depends="compile" description="Creates the JAR file">  
    <jar destfile="dist/FirstAnt.jar" basedir="classes"/>  
  </target>  
  <target name="clean" depends="compile" description="Removes the directories created">  
    <delete dir="classes"/>  
    <delete dir="dist"/>  
  </target>  
</project> 



下面对上述内容做出解释每个build.xml文件的结构大体如下:

<project name="***" default="***">
    <target name="***">
        <***>    //a task,some operation
        <***>    //a task,some operation
    </target>
    <target name="***" depends="***">
        <***>    //a task,some operation
    </target>
    .
    .
    .
</project>


<project>就是ant所有构建的项目,name属性为该项目的名称,default是执行ant命令时默认执行的目标 <target>是ant在构件项目的过程中要执行的一个个目标任务,name属性为该目标的名称,另外,有些<target> 有depends属性(值为其他一个或多个<target>的name),表示该target有依赖性,执行之前一定要执行depends中所指定的其他target <***>表示某个target所有完成的某个操作,称为task,ant的task操作非常丰富,具体可参见ant文档http://ant.apache.org/manual/index.html 有了这样一个大概的了解,我们再来看上面具体的build.xml <project name="FirstAnt" default="archive">表示项目名称为FirstAnt,并且当在控制台中输入ant命令时(没有参数),默认执行的target是 archive(输入ant命令时必须确保目录已转到d:/AntTest目录下),紧跟在project后的description是描述该 build.xml所要做的所有事.


Java代码

<target name="init" description="create the directories">  
  <mkdir dir="classes"/>  
  <mkdir dir="dist"/>  
</target> 

这是一个target单元,表示该target的name是init,description属性描述了该target所要做的事,<mkdir dir="classes"/>是一个名为mkdir的task,表示在当前目录下创建一个classes目录,<mkdir dir="dist"/>依此类推

Java代码

<target name="compile" depends="init" description="Compiles the source code">  
   <javac srcdir="src" destdir="classes"/>  
</target> 

这是另一个target单元,表示该target的name是complie,这个target有depends属性,表示执行该target前另一个名为init的target应已执行,<javac srcdir="src" destdir="classes"/>是一个名为javac的task操作,后面是该task所需的属性下面的各个target的含义依此类推...


3.打开控制台,转到的d:/Ant目录下,输入ant,执行完成后,根据build.xml的执行规则,在该目录下会有两个新的目录classes和dist里面分别有对应的class文件和jar文件。

至此,一个ant项目已构建完成。仔细回顾一下,我们发现build.xml文件中名为clean的task并没有被执行,那么如何执行它呢?我们只需用参数调用ant命令即可ant clean,执行完成后,刚刚创建的两个目录被删除。再仔细研究一下build.xml,我们得到:首先,一个build.xml文件是有固定结构的(上面已给出);其次,对于project和每个 target标签,都有固定名称的属性,这些名称是可选的,但每个属性的值都指定了一个作用;最后,每个他task都有固定的名称和对应的属性,都对应相应的操作,具体在ant文档中指出。

你可能感兴趣的:(apache,xml,ant)