我正在使用 Ant 1.7.1 压缩包含 .git 子目录的目录的内容。我目前的任务是
<tar
destfile="sali-src-${version}.tgz"
basedir="${basedir}"
compression="gzip"
excludes=".git, .gitignore, *.ipr, *.iws, *.iml">
</tar>
但生成的 tarball 包含 .git 子目录。谁能指出我如何防止它被包括在内?
这有效:
<?xml version="1.0"?>
<project name="test" default="tar">
<target name="tar">
<tar
destfile="sali-src-${version}.tgz"
basedir="${basedir}"
compression="gzip"
excludes=".git/**, .gitignore/**, **/*.ipr, **/*.iws, **/*.iml">
</tar>
</target>
</project>
您的模式是错误的,有关模式的更多信息,请阅读此处:http ://ant.apache.org/manual/dirtasks.html#patterns
Ant 具有预先配置的默认排除项,可防止基于目录的任务处理 CVS、Subversion 和 VSS 的控制文件。不幸的是,这些默认值不包括任何其他版本控制系统。但是,您可以使用<defaultexcludes> 任务修改默认值:
<defaultexcludes add="**/.git/**,**/.gitignore"/>
这将从任何后续处理中排除您的 Git 文件(因此每次后续使用 <tar>、<javac>、<jar> 或类似文件都会忽略控制文件)。