Cab

描述

Cab 任务创建 Microsoft cabinet 档案文件。它的调用方式类似于 jarzip 任务。此任务将在 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 必须排除的文件模式的逗号或空格分隔列表。 否;默认为默认排除项,如果 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>