- Ant简介
- Apache Ant功能特性
- Apache Ant安装
- Apache Ant入门程序(Hello World)
- Apache Ant构建文件-project标签
- Apache Ant目标-target标签
- Apache Ant任务-task标签
- Apache Ant属性
- Apache Ant令牌过滤器
- Apache Ant命令行参数
- Apache Ant If和Unless用法
- Apache Ant类型
- Apache Ant自定义组件
- Apache Ant监听器和记录器
- Apache Ant IDE集成
- Apache Ant InputHandler接口
- Ant之外的Apache Ant任务
- Apache Ant参数处理器
- Apache Ant API
- Apache Ant Jar示例
- Ant任务
Apache Ant类型
Apache Ant提供了丰富的类型(type
)集,其中一些在下面给出。 我们可以使用它们来处理数据,文件,路径等,也可以用作服务。
类型 | 描述 |
---|---|
ClassFileSet |
用于创建具有所有必需类的Jar |
DirSet |
对目录进行分组 |
FileList |
文件列表 |
FileSet |
一组文件 |
FileMapper |
用于映射源文件和目标文件 |
FilterSet |
一组过滤器 |
PatternSet |
由ids 引用的一组模式。 |
Selectors |
FileSet元素有助于选择元素 |
TarFileSet |
它是FileSet的一种特殊形式。 |
ZipFileSet |
一组zip文件。 |
1. ClassFileSet
ClassFileSet
是一种特殊类型的FileSet,它包含根类所依赖的所有类文件。 它用于为特定应用程序创建具有所有必需类的JAR。
ClassFileSet
由id值声明,然后用作引用。
2. DirSet
DirSet是一组目录。 它支持<patternset>
,它的嵌套元素是<include>
,<includesfile>
,<exclude>
和<excludefiles>
。它具有以下给出的各种属性。
属性 | 描述 | 是否必需 |
---|---|---|
dir |
拥有此DirSet的目录树的根 | 是 |
includes |
目录模式列表 | 否 |
includesfile |
要包含的文件的名称。 | 否 |
excludes |
必须排除的目录模式列表。 | 否 |
excludesfile |
要排除的文件的名称。 | 否 |
casesensitive |
用于指定是否应该应用区分大小写。 | 否 |
follosymlinks |
有一个符号链接可供遵循。 | 否 |
erroronmissingdir |
它指定如果基本目录不存在,则要发生什么。 | 否 |
Apache Ant DirSet示例
<dirset dir="${build.dir}"> <include name="apps/**/classes"/> <exclude name="apps/**/*Test*"/> </dirset>
此示例将对${build.dir}
的apps子目录中找到的所有目录名称classess
进行分组,并排除其名称中包含测试的目录。
3. FileList
FileList是文件的列表(集合),它可以与<concat>
,<dependset>
任务一起使用。FileList对于指定可能存在或不存在的文件很有用。它具有以下属性 -
属性 | 描述 | 是否必需 |
---|---|---|
dir |
用于保存此列表的基目录。 | 是 |
files |
文件名列表 | 是 |
FileList示例
<project name="filelist" default="filelist-run"> <target name ="filelist-run"> <filelist id="files" dir="${files.src}" files="a.xml,b.xml"/> </target> </project>
4. FileSet
FileSet是来自单个根目录的一组文件。它根据Ant指定的模式集收集文件。 <include>
和<exclude>
元素称为模式集。 模式集是文件匹配模式的集合。 默认情况下,这些是区分大小写的,但可以通过设置casesensitive = false
来禁用。
FileSet具有以下给出的属性。
属性 | 描述 | 是否必需 |
---|---|---|
dir |
将根目录保存在FileSet | 必须指定目录或文件 |
file |
用于指定单文件FileSet | 必须指定目录或文件 |
includes |
必须包含的文件模式列表。 | 否 |
includesfile |
文件名 | 否 |
excludes |
必须排除的文件模式列表。 | 否 |
excludesfiles |
文件名模式。 | 否 |
casesensitive |
include 和exclude 模式都区分大小写。 |
否 |
followsymlinks |
应遵循符号链接 | 否 |
让我们来看看一个并将文件从一个目录复制到另一个目录的例子。
FileSet示例
文件:build.xml -
<project name="fileset" default="fileset-run"> <target name="fileset-run"> <copy todir="dir1"> <fileset dir="dir2"> <include name ="*.java"/> </fileset> </copy> </target> </project>
上面的代码将所有java文件从dir2
复制到dir1
。
5. FileMapper
有时在执行任务后,源文件和输出都不同,然后不进行映射。 Apache Ant使用FileMapper
映射源和创建的目标文件。 org.apache.tools.ant.util.FileNameMapper
类和<mapper>
元素的实例用于映射文件。
FileMapper具有以下属性。
属性 | 描述 | 是否必需 |
---|---|---|
type |
指定其中一个内置实现。 | 否 |
classname |
按类名指定实现 | 其中之一 |
classpath |
查找classname 时要使用的类路径。 |
否 |
classpathref |
Apache Ant?用户手册 | 否 |
from |
给定实现的from 属性。 |
取决于实现 |
to |
给定实现的to 属性。 |
取决于实施 |
所有内置映射器都区分大小写。
映射器示例
<mapper type="glob" from="*.java" to="*.java.bak"/> <globmapper from="*.java" to="*.java.bak"/>
6. FilterSet
FilterSet是一组过滤器,由两个主要操作(任务)复制和移动使用。 它使用id
和refid
属性,id
用于定义FilterSet
,refid
用于引用另一个FilterSet
。
也可以将FilterSet
嵌套到FilterSet
中以获得包含的过滤器的集合并集。
它具有以下属性。
属性 | 描述 | 默认 | 是否必需 |
---|---|---|---|
begintoken |
它是标记令牌开头的字符串。 | @ | 否 |
endtoken |
它是标记令牌结尾的字符串。 | @ | 否 |
filtersfile |
它指定单个filtersfile 。 |
None | 否 |
recurse |
用于搜索更多令牌 | true | 否 |
onmissingfiltersfile |
它指示指定不存在filtersfile 时的行为。 |
fail | 否 |
在这里,我们将abc.txt
文件从build
目录复制到dist
目录,但希望用今天的日期替换令牌@DATE@
。
FilterSet示例
<copy file="${build.dir}/abc.txt" toFile="${dist.dir}/xyz.txt"> <filterset> <filter token="DATE" value="${TODAY}"/> </filterset> </copy>