Apache Ant 类型

2024年8月28日 | 阅读 4 分钟

Apache Ant 提供了丰富的类型,其中一些类型如下所示。我们可以使用它们来处理数据文件路径等,也可以用作服务。

类型描述
ClassFileSet它用于创建包含所有必需类的 Jar。
DirSet它对目录进行分组。
FileList文件列表。
FileSet一组文件。
FileMapper它有助于映射源文件和目标文件。
FilterSet一组过滤器。
PatternSet一组按 id 引用的模式。
选择器一个 FileSet 元素,有助于选择元素
TarFileSet它是 FileSet 的一种特殊形式。
ZipFileSet一组 zip 文件。

ClassFileSet

ClassFileSet 是一种特殊类型的 FileSet,它包括根类所依赖的所有文件。它用于创建JAR,其中包含特定应用程序所需的所有类。

ClassFileSet 通过 id 值声明,该值然后用作引用。

DirSet

DirSet 是一组目录。它支持 <patternset> 及其嵌套元素 <include>、<includesfile>、<exclude>、<excludefiles>。 它具有以下各种属性。

属性描述必需
dir它保存此 DirSet 的目录树的根目录是的
includes目录模式列表。不能
includesfile要包含的文件名。不能
排除必须排除的目录模式列表。不能
excludesfile要排除的文件名。不能
casesensitive它用于指定是否应应用区分大小写。不能
follosymlinks它保存要跟踪的符号链接。不能
erroronmissingdir它指定基本目录不存在时会发生什么。不能

Apache Ant DirSet 示例

此示例将对在 ${build.dir} 的 apps 子目录中找到的所有名为 classess 的目录进行分组,并排除名称中包含 test 的目录。

FileList

FileList 是文件列表(集合)。 它可以与 <concat>、<dependset> 任务一起使用。 FileList 对于指定可能存在也可能不存在的文件很有用。 它具有以下属性。

属性描述必需
dir它用于保存此列表的基本目录。是的
files文件名列表是的

FileList 示例

FileSet

FileSet 是一组来自单个根目录的文件。 它根据 Ant 指定的 patternsets 收集文件。 <include> 和 <exclude> 元素称为 patternsets。 patternset 是文件匹配模式的集合。 默认情况下,这些模式区分大小写,但可以通过将 casesensitive 设置为 false 来禁用。

File Set 具有以下属性。

属性描述必需
dir它保存 FileSet 的根目录。必须指定 dir 或 file 之一。
file用于指定单文件 fileset。必须指定 dir 或 file 之一。
includes必须包含的文件的模式列表。不能
includesfile文件名。不能
排除必须排除的文件的模式列表。不能
excludesfiles文件名模式。不能
casesensitive包含和排除模式均区分大小写。不能
followsymlinks应跟踪符号链接。不能

让我们看一个示例,并将文件从一个目录复制到另一个目录。

FileSet 示例

// build.xml

上面的代码会将 dir2 中的所有 java 文件复制到 dir1。

FileMapper

有时,在执行任务后,源文件和输出文件不同,因此无法映射。 Apache Ant 使用 FileMapper 来映射源文件和创建的目标文件。 org.apache.tools.ant.util.FileNameMapper 类的实例和 <mapper> 元素用于映射文件。

mapper 具有以下属性。

属性描述必需
type指定内置实现之一。不能
类名通过类名指定实现。只能指定其中一个。
类路径查找类名时要使用的 classpath。不能
classpathrefApache Ant? 用户手册不能
from(从)给定实现的 from 属性。取决于实现
to给定实现的 to 属性。取决于实现

所有内置 mapper 均区分大小写。

Mapper 示例

FilterSet

FilterSet 是一组过滤器,由两个主要操作(任务)复制和移动使用。它使用 id 和 refid 属性,id 用于定义 FilterSet,refid 用于引用另一个 FilterSet。

也可以将 FilterSet 嵌套到 FilterSet 中以获得包含的过滤器的集合并集。

它具有以下各种属性。

Fileset 属性

属性描述默认必需
begintoken它是一个字符串,标记令牌的开头。@不能
endtoken它是一个字符串,标记令牌的结尾。@不能
过滤器文件它指定一个 filtersfile。不能
recurse用于搜索更多令牌。true不能
onmissingfiltersfile它指示指定不存在的 filtersfile 时的行为。fail (失败)不能

在此,我们将 abc.txt 文件从 build 目录复制到 dist 目录,但希望将令牌 @DATE@ 替换为今天的日期。

FilterSet 示例