ZipFileSet

<zipfileset><fileset> 的特殊形式,它可以有 2 種不同的行為

<zipfileset> 支援 <fileset> 的所有屬性,以及下列所列的屬性。請注意,一般的 zip 檔案不包含以斜線開頭的條目,因此您也不應使用以斜線開頭的 includes/excludes 模式。

自 Ant 1.6 起,可以使用 id 屬性定義 zipfileset,並使用 refid 屬性來參照它。

參數

屬性 說明 必要
prefix 檔案集中的所有檔案都以該路徑為前綴加到檔案庫中。
fullpath 檔案集描述的檔案會放置在檔案庫中的那個確切位置。
src 可以用來取代 dir 屬性,以指定要提取其內容並包含在檔案庫中的 zip 檔案。
filemode 一個 3 位數八進位字串,以標準 Unix 方式指定使用者、群組和其他模式。僅適用於純文字檔案。自 Ant 1.5.2 起 否;預設為 644
dirmode 一個 3 位數八進位字串,以標準 Unix 方式指定使用者、群組和其他模式。僅適用於目錄。自 Ant 1.5.2 起 否;預設為 755
encoding 用於 zip 檔案內檔案名的字元編碼。有關可能值的清單,請參閱 支援的編碼否;預設為 JVM 預設字元編碼
erroronmissingarchive 指定如果檔案庫不存在時會發生什麼事。如果為 true,將會發生建置錯誤;如果為 false,檔案集將會被忽略/清空。自 Ant 1.8.0 起 否;預設為 true

僅能為代表單一檔案的檔案集設定 fullpath 屬性。無法在同一個檔案集上同時設定 prefixfullpath 屬性。

使用 src 屬性時,includesexcludes 模式可用於指定要包含在檔案中的檔案集子集,就像使用 dir 屬性一樣。

請注意,目前只有 tarzip 任務使用權限。

以巢狀元素指定的參數

任何基於檔案系統的 資源 或單一元素資源集合

指定的資源將用作 src

範例

<zip destfile="${dist}/manual.zip">
  <zipfileset dir="htdocs/manual" prefix="docs/user-guide"/>
  <zipfileset dir="." includes="ChangeLog27.txt" fullpath="docs/ChangeLog.txt"/>
  <zipfileset src="examples.zip" includes="**/*.html" prefix="docs/examples"/>
</zip>

htdocs/manual 目錄中的所有檔案壓縮到檔案中的 docs/user-guide 目錄,將目前目錄中的 ChangeLog27.txt 檔案新增為 docs/ChangeLog.txt,並將 examples.zip 中的所有 html 檔案包含在 docs/examples 下。檔案最後可能包含以下檔案

docs/user-guide/html/index.html
docs/ChangeLog.txt
docs/examples/index.html