Cab 任務會建立 Microsoft 內閣檔案。呼叫方式類似於 jar 或 zip 任務。此任務會在 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 | 必須排除的檔案模式的逗號或空格分隔清單。 | 否;預設為預設排除或如果 defaultexcludes 為 no則為無 |
excludesfile | 檔案名稱。此檔案的每一行都被視為排除模式 | 否 |
defaultexcludes | 表示是否應使用預設排除 (yes|no). |
否;預設為 yes |
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>