Cab 任务创建 Microsoft cabinet 档案文件。它的调用方式类似于 jar 或 zip 任务。此任务将在 Windows 上使用外部 cabarc 工具(由 Microsoft 提供)工作,该工具必须位于您的可执行路径中。
要在其他平台上使用此任务,您需要从 https://www.freshports.org/archivers/libcabinet/ 下载并编译 libcabinet
。
有关文件包含/排除的工作方式以及如何编写模式,请参阅有关 基于目录的任务 的部分。
此任务形成一个隐式的 FileSet,并支持 <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>