Cab

說明

Cab 任務會建立 Microsoft 內閣檔案。呼叫方式類似於 jarzip 任務。此任務會在 Windows 上使用外部 cabarc 工具(由 Microsoft 提供)執行,此工具必須位於您的可執行路徑中。

要在其他平台上使用此任務,您需要從 https://www.freshports.org/archivers/libcabinet/ 下載並編譯 libcabinet

請參閱 基於目錄的任務 部分,了解如何包含/排除檔案,以及如何撰寫模式。

此任務會形成一個隱含的 檔案集,並支援 <fileset> 的大部分屬性(dir 會變成 basedir),以及巢狀的 <include><exclude><patternset> 元素。

在非 Unix 平台上,此任務會將要封存的檔案清單寫入 暫存目錄

參數

屬性 說明 必要
cabfile 要建立的 cab 檔案名稱。
basedir 開始封存檔案的目錄。
verbose 如果您想看到 cabarc 工具的輸出,請設定為 yes 否;預設為 no
compress 設定為 no 以儲存檔案而不壓縮。 否;預設為 yes
options 設定 cabarc 工具的其他命令列選項。通常不需要。
includes 必須包含的檔案模式的逗號或空格分隔清單。 否;預設為全部 (**)
includesfile 檔案名稱。此檔案的每一行都被視為包含模式
excludes 必須排除的檔案模式的逗號或空格分隔清單。 否;預設為預設排除或如果 defaultexcludesno 則為無
excludesfile 檔案名稱。此檔案的每一行都被視為排除模式
defaultexcludes 表示是否應使用預設排除 (yes|no). 否;預設為 yes

指定為巢狀元素的參數

fileset

cab 任務支援一個巢狀的 <fileset> 元素,用於指定要包含在歸檔中的檔案。如果指定此元素,則無法使用 basedir 屬性。

範例

htdocs/manual 目錄中的所有檔案打包到 ${dist} 目錄中一個名為 manual.cab 的檔案中。

<cab cabfile="${dist}/manual.cab"
     basedir="htdocs/manual"/>

htdocs/manual 目錄中的所有檔案打包到 ${dist} 目錄中一個名為 manual.cab 的檔案中。目錄 mydocs 中的檔案或名稱為 todo.html 的檔案會被排除在外。

<cab cabfile="${dist}/manual.cab"
     basedir="htdocs/manual"
     excludes="mydocs/**, **/todo.html"/>

htdocs/manual 目錄中的所有檔案打包到 ${dist} 目錄中一個名為 manual.cab 的檔案中。只有 api 目錄下的 .html 檔案會被歸檔,而名稱為 todo.html 的檔案會被排除在外。會在建置輸出中顯示 cabarc 工具的輸出。

<cab cabfile="${dist}/manual.cab"
     basedir="htdocs/manual"
     includes="api/**/*.html"
     excludes="**/todo.html"
     verbose="yes"/>

下列範例等同於上述範例。

<cab cabfile="${dist}/manual.cab"
     verbose="yes">
  <fileset
       dir="htdocs/manual"
       includes="api/**/*.html"
       excludes="**/todo.html"/>
</cab>