本文概述
- 类文件集
- 文件清单
- 文件集
- 文件映射器
- 过滤器集
- 文件集属性
类型 | 描述 |
---|---|
ClassFileSet | 它用于创建具有所有必需类的Jar。 |
DirSet | 它将目录分组。 |
FileList | 文件列表。 |
FileSet | 一组文件。 |
FileMapper | 它有助于映射源文件和目标文件。 |
FilterSet | 一组过滤器。 |
PatternSet | ID引用的一组模式。 |
Selectors | FileSet元素, 有助于选择元素 |
TarFileSet | 它是FileSet的一种特殊形式。 |
ZipFileSet | 一组zip文件。 |
通过ID值声明ClassFileSet,然后将其用作参考。
DirSet
DirSet是一组目录。它支持< patternset> 及其嵌套元素< include> ,< includesfile> ,< exclude> ,< excludefiles> 。它具有以下提供的各种属性。
属性 | 描述 | 需要 |
---|---|---|
dir | 它保存此DirSet的目录树的根 | 是 |
includes | 目录模式列表。 | 没有 |
includesfile | 要包含的文件名。 | 没有 |
excludes | 必须排除的目录模式列表。 | 没有 |
excludesfile | 要排除的文件名。 | 没有 |
casesensitive | 它用于指定是否应区分大小写。 | 没有 |
follosymlinks | 它具有要遵循的符号链接。 | 没有 |
erroronmissingdir | 它指定了基本目录不存在时将发生的情况。 | 没有 |
<
dirset dir="${build.dir}">
<
include name="apps/**/classes"/>
<
exclude name="apps/**/*Test*"/>
<
/dirset>
本示例将在$ {build.dir}的apps子目录中找到的所有目录名称类分组,并排除名称中具有test的目录。
文件清单FileList是文件列表(集合)。它可以与< concat> ,< dependset> 任务一起使用。 FileList对于指定可能存在或不存在的文件很有用。它具有下面给出的属性。
属性 | 描述 | 需要 |
---|---|---|
dir | 它用于保存此列表的基本目录。 | 是 |
files | 文件名列表 | 是 |
<
project name="filelist" default="filelist-run">
<
target name = ?filelist-run?>
<
filelist id="files" dir="${files.src}" files="a.xml, b.xml"/>
<
/target>
<
/project>
文件集FileSet是来自单个根目录的一组文件。它根据Ant指定的模式集收集文件。 < include> 和< exclude> 元素称为模式集。模式集是文件匹配模式的集合。默认情况下,它们区分大小写,但可以通过设置casesensitive = false禁用它们。
文件集具有以下属性。
属性 | 描述 | 需要 |
---|---|---|
dir | 它保存根目录FileSet。 | 必须指定目录或文件。 |
file | 用于指定单文件文件集。 | 必须指定目录或文件。 |
includes | 必须包括的文件模式列表。 | 没有 |
includesfile | 文件名。 | 没有 |
excludes | 必须排除的文件模式列表。 | 没有 |
excludesfiles | 文件名模式。 | 没有 |
casesensitive | 包含和排除模式都区分大小写。 | 没有 |
followsymlinks | 应遵循符号链接。 | 没有 |
文件集示例
// 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。
文件映射器有时在执行任务后,源文件和输出都不同,因此无法映射。 Apache Ant使用FileMapper映射源文件和创建的目标文件。 org.apache.tools.ant.util.FileNameMapper类和< mapper> 元素的实例用于映射文件。
映射器具有以下属性。
属性 | 描述 | 需要 |
---|---|---|
type | 指定内置实现之一。 | 没有 |
classname | 通过类名称指定实现。 | 正是其中之一。 |
classpath | 查找类名时要使用的类路径。 | 没有 |
classpathref | Apache Ant?用户手册 | 没有 |
from | 给定实现的from属性。 | 取决于实施 |
to | 给定实现的to属性。 | 取决于实施 |
映射器示例
<
mapper type="glob" from="*.java" to="*.java.bak"/>
<
globmapper from="*.java" to="*.java.bak"/>
过滤器集FilterSet是一组过滤器,由两个主要操作(任务)复制和移动使用。它使用id和refid属性,id用于定义FilterSet,refid用于引用另一个FilterSet。
也可以将FilterSet嵌套到FilterSet中,以获得包含的过滤器的集合并集。
它具有以下提供的各种属性。
文件集属性
属性 | 描述 | 默认 | 需要 |
---|---|---|---|
begintoken | 它是一个标记标记开始的字符串。 | @ | 没有 |
endtoken | 它是标记令牌结束的字符串。 | @ | 没有 |
filtersfile | 它指定一个过滤文件。 | 没有 | 没有 |
recurse | 用于搜索更多令牌。 | 真正 | 没有 |
onmissingfiltersfile | 当指定了不存在的filtersfile时, 它指示行为。 | 失败 | 没有 |
FilterSet示例
<
copy file="${build.dir}/abc.txt" toFile="${dist.dir}/xyz.txt">
<
filterset>
<
filter token="DATE" value="http://www.srcmini.com/${TODAY}"/>
<
/filterset>
<
/copy>
推荐阅读
- apache ant自定义组件
- apache ant的if和unless属性
- apache ant命令行参数
- apache ant属性
- apache ant token过滤器
- apache ant hello world例子
- apache ant任务
- apache ant目标target
- apache ant项目