跳轉到內容

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 元素的子元素出現,也可以出現在支援此功能的任務中。

下一節下一章食譜

華夏公益教科書