Ant数据类型
Ant提供了一些预定义的数据类型。不要混淆,也可在编程语言中的数据类型,而是考虑数据类型的设置被内置到产品中服务。
下面是一个由Apache Ant的提供的数据类型的列表
文件集合
该文件集的数据类型表示文件的集合。该文件集的数据类型通常是作为一个过滤器,以包括和排除匹配特定模式的文件。
例如:
<fileset dir="${src}" casesensitive="yes"> <include name="**/*.java"/> <exclude name="**/*Stub*"/> </fileset>
在上面的例子中的src属性指向项目的源文件夹。
在上面的例子中,文件集的选择,除了那些包含在其中单词“Stub”源文件夹中的所有java文件。在大小写敏感的过滤器应用到文件集这意味着名为Samplestub.java一个文件不会被排除在文件集
模式集
一个模式集是一个模式,可以非常方便地筛选基于某种模式的文件或文件夹。可以使用下面的元字符来创建模式。
- ? - 只匹配一个字符
- * - 匹配零个或多个字符
- ** - 匹配零个或多个目录递归
下面的例子应该给一个模式集的用法的想法。
<patternset id="java.files.without.stubs"> <include name="src/**/*.java"/> <exclude name="src/**/*Stub*"/> </patternset>
patternset 可以用一个文件集重用如下:
<fileset dir="${src}" casesensitive="yes"> <patternset refid="java.files.without.stubs"/> </fileset>
文件列表
在文件列表的数据类型类似设置,除了在文件列表中包含显式命名的文件列表,不支持通配符的文件
文件列表和文件组的数据类型之间的另一个主要区别是,在文件列表的数据类型可应用于可能会或可能还不存在的文件。
以下是文件列表的数据类型的一个例子
<filelist id="config.files" dir="${webapp.src.folder}"> <file name="applicationConfig.xml"/> <file name="faces-config.xml"/> <file name="web.xml"/> <file name="portlet.xml"/> </filelist>
在上面的例子中webapp.src.folder属性指向该项目的Web应用程序的源文件夹。
过滤器集
使用与复制任务筛选器集的数据类型,你可以匹配一个替代值的模式,所有的文件替换一定的文本。
一个常见的例子是附加版本号的发行说明文件,如下面的示例所示
<copy todir="${output.dir}"> <fileset dir="${releasenotes.dir}" includes="**/*.txt"/> <filterset> <filter token="VERSION" value="${current.version}"/> </filterset> </copy>
在上面的例子中output.dir属性指向项目的输出文件夹。
在上面的例子点releasenotes.dir属性的发行说明的项目文件夹中。
在上面的例子中current.version属性指向的项目的当前版本中的文件夹。
副本任务,顾名思义是用来从一个位置复制到另一个文件。
路径
path 数据类型通常用来代表一个类路径。在路径项用分号或冒号隔开。然而,这些字符会被正在运行的系统的路径分隔符替换一个运行时间。
最常见的类路径设置为项目中的jar文件和类的列表,如下面的例子:
<path id="build.classpath.jar"> <pathelement path="${env.J2EE_HOME}/${j2ee.jar}"/> <fileset dir="lib"> <include name="**/*.jar"/> </fileset> </path>
在上面的例子中env.J2EE_HOME属性指向环境变量J2EE_HOME。
在上面的例子中的j2ee.jar属性指向在J2EE基础文件夹J2EE的jar文件的名称。