- Apache ANT 教程
- ANT - 首页
- ANT - 简介
- ANT - 环境设置
- ANT - 构建文件
- ANT - 属性任务
- ANT - 属性文件
- ANT - 数据类型
- ANT - 构建项目
- ANT - 构建文档
- ANT - 创建 JAR 文件
- ANT - 创建 WAR 文件
- ANT - 打包应用程序
- ANT - 部署应用程序
- ANT - 执行 Java 代码
- ANT - Eclipse 集成
- ANT - JUnit 集成
- ANT - 扩展 Ant
- Apache ANT 有用示例
- ANT - 使用 Token
- ANT - 使用命令行参数
- ANT - 使用 If Else 参数
- ANT - 自定义组件
- ANT - 监听器和记录器
- Apache ANT 资源
- ANT - 快速指南
- ANT - 有用资源
- ANT - 讨论
Ant - 数据类型
Ant 提供了许多预定义的数据类型。不要将“数据类型”一词与编程语言中可用的数据类型混淆。相反,可以将它们视为已内置于产品中的一组服务。
Ant 中的数据类型
Apache Ant 提供以下数据类型。
文件集 (Fileset)
文件集数据类型表示文件集合。它用作过滤器,用于包含或排除与特定模式匹配的文件。
例如,请参考以下代码。此处,src 属性指向项目的源文件夹。
<fileset dir="${src}" casesensitive="yes"> <include name="**/*.java"/> <exclude name="**/*Stub*"/> </fileset>
文件集选择源文件夹中的所有 .java 文件,但包含“Stub”一词的文件除外。区分大小写的过滤器应用于文件集,这意味着名为 Samplestub.java 的文件不会从文件集中排除。
模式集 (Pattern set)
模式集是一种模式,允许根据某些模式轻松过滤文件或文件夹。可以使用以下元字符创建模式:-
? - 仅匹配一个字符。
* - 匹配零个或多个字符。
** - 递归匹配零个或多个目录。
以下示例描述了模式集的使用。
<patternset id="java.files.without.stubs"> <include name="src/**/*.java"/> <exclude name="src/**/*Stub*"/> </patternset>
然后可以将模式集与文件集一起重用,如下所示:-
<fileset dir="${src}" casesensitive="yes"> <patternset refid="java.files.without.stubs"/> </fileset>
文件列表 (File list)
文件列表数据类型类似于文件集,但存在以下区别:-
它包含显式命名的文件列表,并且不支持通配符。
此数据类型可以应用于现有文件或不存在的文件。
让我们看看文件列表数据类型的以下示例。此处,属性webapp.src.folder指向项目的 Web 应用程序源文件夹。
<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>
过滤器集 (Filter set)
通过将过滤器集数据类型与复制任务一起使用,您可以将所有与模式匹配的文件中的某些文本替换为替换值。
一个常见的示例是将版本号附加到发行说明文件,如以下代码所示。
<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)
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 文件的名称。