Ant简介

来源:百度文库 编辑:神马文学网 时间:2024/06/30 20:18:57
一.Ant简介:
Ant----Another Neat Tool,是一个基于Java的跨平台构建工具,作为一个优秀的构建工具Ant有如下的优点:
Ø         语法简单,便于学习,如果你使用过XMl,就会更加感觉到这一点;
Ø         易于使用,可以减少基于Make方法的大型软件项目中编写makefile的人数;
Ø         跨平台,以一种灵巧的方式管理Java的classpath和文件的目录结构;
Ø         运行速度快,所有的Java都可以在Ant的JVM中启动;
Ø         与Junit测试框架紧密集成以实现极限编程的单元测试;
Ø         使用Java语言可以很容易的对他进行扩展;
Ø         内置对J2EE的开发的支持,如EJB的编译和打包等;
Ø         致力于解决Java项目的部署问题:如FTP,Telnet,应用服务器,SQL命令等,这些都可以自动部署.
Ant的官方网站: http://ant.apache.org/
Ant的最新版本:Ant 1.6.5
本文所有的例子运行的环境:JDK1.4.2,Ant1.6.2,eclipse3.0
二.介绍Ant的DATATYPE和特性
Ant的核心任务就是target,一个Ant文件有多个target组成,而这些target之间,又有相互的依赖关系--depends,运行的时候默认运行project中指定的target.在构建一个典型的Java工程时,多数的步骤用于处理文件和路径(如classpath),Ant提供的datatype可以很自然的处理这两个概念.文件集和路径以及其他的几种类型的datatype,构成了Ant的构建文件的基本结构.
1.路径(Path)
在javac中我们经常使用的就是classpath,一个路径定义的例子如下:



location允许你指定单个的文件或者目录,也可以通过另一个路径莱扩展当前的路径,使用path来代替location:



路径定义中元素间的分隔符可以使用分号,冒号,路径分隔符可以使用斜杠,反斜杠,不需要考虑操作系统的差异.
2.文件集(Fileset)
所有的构建过程都会隐式的对一系列文件进行操作,Ant将文件集看成一种本地的datatype,下面看一个例子,这个例子是将文件从一个目录copy到另一个目录中:



在构建过程中我们通常需要包含或者排除一些文件,下面是一些典型的文件集示例:






默认情况下,include和exclude中的值是大小写敏感的,可以通过设置casesensitive=”false”,来取消它.
还有在许多情况下,IDE和代码管理系统会生成许多的临时文件,我们不得已要在每个文件集中去设置排除子句,为了避免这种情况,Ant针对这些特殊的模式的排除模式在默认情况下是激活的(例如:**/CVS,**/#*#等),详细模式可以查找相关的文档!.
3.模式集(Patternset)
在文件集中使用Ant的另一个核心datatype:模式集,来实现包含和排除功能.模式匹配功能如下:
l       *  指代从零到任意长的字符.
l       ?  指代单一字符.
l       ** 作为目录名,代表目录树上从当前节电往下的所有目录,可以是零到任意多个目录.
l       以/ 或 \结尾的模式意味着结尾是**.
4.选择器(Selector)
Ant1.5以上的版本包含了一个精密的新特性,选择器,他用来选择包含在文件集中的文件.介绍几种常用的内建选择器:
:基于模式匹配文件,工作方式类似与模式集的include或exclude元素
:以小于,大于,等于该指定值为条件来选择文件.
:以最后修改时间早于,迟于或等于指定值来选择文件.
:选择存在于其他目录树的文件.
选择包含指定字符串的文件.
这些选择器都可以被合并到选择器容器中以提供分组和逻辑表达,这些容器就是,,,
比较两个目录,并将只在一个目录下存在的文件复制到另一个目录下,我们来结合使用







使用选择器,我们可以选择只包含特定字符串的文件:




.
这里简单提一下Ant的一个特性:Property,它与java.util.Property在概念上非常相似,它允许在构建文件中自定义特性,并且允许将环境变量作为特性. Property具有特殊的权限,他可以在之外执行,具体的用法,在下面将结合例子说明.
以上介绍了几种Ant的常用datatype,Ant还包括很多的datatype,例如过滤集(Filterset),过滤链(filterchain),过滤阅读器(FilterReader),Mapper映射器,ZipFileset等等,可以通过相关资料来了解!