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! 代码如下:
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文件的内容如下:
<?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所要做的所有事.
<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"/>依此类推
<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文档中指出。
*总结
下面是一个build.xml文件的大体操作流程
从流程中可以看出一般的操作流程是1.创建目录 2.编译项目,创建doc 3.jar打包,或发布到ftp上。
这篇文章只是一个简单的ant项目实例,更多内容可参见ant文档。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Alend_Yin/archive/2008/03/03/2144407.aspx
注意:这是我转载的一篇文章,可是这里存在一个问题,生成的jar文件无法运行。
缺乏main-class声明,所以需要继续研究,看如何将jar的main-class声明打进去。