*前言
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! 代码如下:
2.现在我们开始构建Ant,在d盘创建目录AntTest(命名随意),在AntTest目录下创建目录src(存放项目源代码,把项目的源代码拷到该目录下),在AntTest目录下创建ant的build文件build.xml,build.xml文件的内容如下:
下面对上述内容做出解释
每个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文档。
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! " );
}
}
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 >
< 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所要做的所有事.
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
下面的各个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文件的大体操作流程
![](http://www.java3z.com/cwbwebhome/article/article2/img1/1dfd5fb0860e49caa4ac48253544cb79.png)
从流程中可以看出一般的操作流程是1.创建目录 2.编译项目,创建doc 3.jar打包,或发布到ftp上。
这篇文章只是一个简单的ant项目实例,更多内容可参见ant文档。