一、概述
tar是Ant内置任务,用于创建tar存档。此任务是基于目录的任务,形成一个隐式文件集,定义了相对于basedir的哪些文件包含在存档中。tar支持文件集的所有属性来细化要包含的文件,此外还支持嵌套资源集合。文件集被扩展来控制tar条目的访问模式、用户名和组名。例如,在准备为某些需要执行权限的Unix系统文件归档时很有用。默认情况下,文件的权限为644,目录权限为755。早期版本的tar不支持大于100字符的路径,当路径长度大于100时,任务的行为由longfile属性控制。
二、属性
destfile:创建的tar文件。
basedir:进行tar存档的文件基本目录。
longfile:如何处理长度大于100的路径,可选值为truncate(在文件添加到存档之前,路径将被截断为100个字符的最大长度)、fail(超过100字符的路径长度会导致任务失败)、warn(为遇到的超过限制的路径发出警告)、omit(忽略路径长度大于100字符的文件)、gnu(路径或文件的信息丢失是不可接收的,将产生一个GNU tar文件,可以包含任意长度的文件,生成的归档文件只能用GNU tar解压),默认为warn。
includes:逗号或空格分隔的必须包含的文件模式列表。
includesfile:文件名。指定文件的每一行都会做为一个includes模式。
excludes:逗号或空格分隔的必须排除的文件模式列表。
excludesfile:文件名。指定文件的每一行都会做为一个excludes模式。
defaultexcludes:是否使用默认排除列表,默认为true。
compression:压缩方法,可选值为none、gzip、bzip2,默认为none。
此外还支持以下嵌套元素:
tarfileset:文件集的扩展,除标准元素之外还额外支持以下属性:
preserveLeadingSlashes:是否在文件名前保留前导“/”,默认为false。
任意资源集合:选择要存档的文件组,ant1.7以前只支持fileset。
三、简单示例
<project>
<tar basedir="../../types/" destfile="types.tar" compression="gzip">
<include name="f**" />
</tar>
<untar src="types.tar" dest="types" compression="gzip"/>
</project>