Ant - 数据类型

Ant提供了许多预定义的数据类型。不要将术语"数据类型"与编程语言中可用的术语混淆,而应将它们视为已经内置到产品中的一组服务。

以下数据类型由Apache Ant提供。

文件集

文件集数据类型表示文件集合。它用作过滤器以包含或排除与特定模式匹配的文件。

例如,请参阅以下代码。这里,src属性指向项目的源文件夹。

文件集选择源文件夹中的所有.java文件,但包含单词"Stub"的文件除外。区分大小写的过滤器应用于文件集,这意味着不会从文件集中排除名为Samplestub.java的文件。

 
<fileset dir = "${src}" casesensitive = "yes">
   <include name = "**/*.java"/>
   <exclude name = "**/*Stub*"/>
</fileset>

模式集

模式集是一种允许根据特定模式轻松过滤文件或文件夹的模式。可以使用以下元字符创建模式 :

  • : 仅匹配一个字符。

  • * : 匹配零个或多个字符。

  • ** : 以递归方式匹配零个或多个目录。

以下示例描述了模式集的用法。

 
< 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>

文件列表

文件列表数据类型与文件集类似,但以下差异和减号除外;

  • filelist包含明确命名的文件列表,但不支持通配符。

  • 文件列表数据类型可以应用于现有或不存在的文件。

让我们看看以下示例文件列表数据类型。这里,属性 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>

过滤器集

使用filterset数据类型和复制任务,可以替换所有文件中的某些文本将模式与替换值匹配。

一个常见示例是将版本号附加到发行说明文件中,如以下代码所示。

 
<copy todir = "${output.dir}">
   <fileset dir = "${releasenotes.dir}" includes = "**/*.txt"/>
   
   <filterset>
      <filter token = "VERSION" value = "${current.version}"/>
   </filterset>
</copy>

在此代码 :

  • attribute output.dir 指向项目的输出文件夹。

  • 属性 releasenotes.dir 指向项目的发行说明文件夹。

  • 属性 current.version 指向项目的当前版本文件夹。

  • 复制任务,顾名思义,用于将文件从一个位置复制到另一个位置。

路径

路径数据类型通常用于表示类路径。路径中的条目使用分号或冒号分隔。但是,这些字符在运行时由执行系统的路径分隔符替换。

类路径设置为项目中jar文件和类的列表,如以下示例。

 
<path id = "build.classpath.jar">
   <pathelement path = "${env.J2EE_HOME}/${j2ee.jar}"/>
   
   <fileset dir = "lib">
      <include name = "**/*.jar"/>
   </fileset>
</path>

在此代码中 :

  • attribute env.J2EE_HOME 指向环境变量 J2EE_HOME

  • 属性 j2ee.jar 指向J2EE基本文件夹中J2EE jar文件的名称。