跳转到内容

Apache Ant/Fileset

来自维基教科书,开放的书籍,开放的世界

FileSets 是 Ant 用于创建文件组以进行操作的方式。这些文件可以在以基目录开始的目录树中找到,并通过从多个 PatternSets 和 Selectors 中获取的模式进行匹配。

FileSet 使用其 dir 属性标识基目录树。然后,FileSet 包含的模式元素,包括命名元素(PatternSets)和通过通配符选择的元素(Selectors),在基树中选择文件和文件夹。

如果 FileSet 中的任何选择器没有选择给定文件,则该文件不被视为 FileSet 的一部分。这使得 FileSets 等同于 <and> 选择器容器。

通配符

[编辑 | 编辑源代码]

Ant 使用通配符指定具有名称模式的文件组。

  • ? : 用于匹配任何字符。
  • * : 用于匹配零个或多个字符。
  • ** : 用于匹配零个或多个目录。

以下 FileSets 都选择 ${server.src} 目录中名称中不包含“Test”的 Java 源文件。

<fileset dir="${server.src}" casesensitive="yes">
  <include name="**/*.java"/>
  <exclude name="**/*Test*"/>
</fileset>
<fileset dir="${server.src}" casesensitive="yes">
  <patternset id="non.test.sources">
    <include name="**/*.java"/>
    <exclude name="**/*Test*"/>
  </patternset>
</fileset>
<fileset dir="${client.src}">
 <patternset refid="non.test.sources"/>
</fileset>
<fileset dir="${server.src}" casesensitive="yes">
 <filename name="**/*.java"/>
 <filename name="**/*Test*" negate="true"/>
</fileset>
<fileset dir="${server.src}" casesensitive="yes">
 <filename name="**/*.java"/>
 <not>
   <filename name="**/*Test*"/>
 </not>
</fileset>

FileSets 可以作为 project 元素的子元素出现,也可以出现在支持此功能的任务中。

下一节下一章食谱

华夏公益教科书