用Ant构建脚本(3)
用Ant构建脚本(3)
三、Ant的数据元素和数据类型
Ant的数据类型定义包括三个级别:project-level、target-level和task-level。这里代表了其在Ant中的可视性,如直接定义在project下的project-level,所有的target和task都可以引用它们。
数据元素分为两个部分:
1)特性property;
2)数据类型DataType。
Ant的DataType用于表示一套复杂的数据集,数据类型的定义通常和target平级,即数据类型一般直接在<project>夏衣层定义,当然也有一些直接定义在task中。
Ant的数据类型如下:
(1)环境变量environment:传递到buildfile的环境变量;
(2)参数argument:从命令行传递到buildfile的参数;
(3)文件列表filelist:文件不一定存在;
(4)文件集fileset:文件必须存在;
(5)模式集patternset;
(6)过滤集filterset;
(7)路径path;
(8)映射mapper:定义了输入与输出文件之间的一套复杂的关系。
四、Ant的核心任务与自定义任务
1、Ant的核心任务:指的是Ant内置的任务,不需要使用第三方包就可以直接使用的任务。
Ant还支持一些可选task,一个可选task一般需要额外的库才能工作。
2、<copy>将文件或者文件集复制到一个新的文件或者目录,必须指定其todir的属性值。<copy>支持的常用属性如下:
(1)file:要复制的文件;
(2)tofile:复制到新的文件的文件名;
(3)todir:复制到新的目录的目录名;
(4)overwrite:是否覆盖目标文件,默认值为false,即只有当被复制的文件比目标文件新时才复制;如要强制覆盖目标文件,需要将overwrite设置为true。
3、<delete>删除单个或多个文件、单个或多个目录。通常在清除build产生的临时文件和临时目录时会用到<delete>,一般build文件中都会有一个名教clean的target。
<delete>支持的常用属性如下:
(1)file:指定要删除的文件;
(2)dir:指定要删除的目录;
(3)includeemptydirs:当使用文件集fileset时,是否删除空的文件夹,默认为false。
4、<mkdir>创建目录,并且非空的父目录也会被创建。其最常见的属性是
dir:指定要创建的目录,该属性不能省略。
5、<javac>编译器的选择,默认为JDK。
6、<java>执行java程序;
7、<jar>将一些文件集打包成JAR的格式。
8、Ant自定义任务
(1)编写<taskdef>标签,在能够调用自定义的任务之前,需要给它指定一个名称来定义它,并告诉Ant关于实现这个任务的类文件的信息,以及定位该类文件所必须的任何classpath设置。这是使用taskdef任务来完成的。如下:
<taskdef name="filesorter" classname="FileSorter" classpath="classes"/>
(2)然后就可以象使用Ant核心任务一样使用这个自定义的任务了。