5

我正在使用 Ant 1.7.1 压缩包含 .git 子目录的目录的内容。我目前的任务是

<tar
    destfile="sali-src-${version}.tgz"
    basedir="${basedir}"
    compression="gzip"
    excludes=".git, .gitignore, *.ipr, *.iws, *.iml">
</tar>

但生成的 tarball 包含 .git 子目录。谁能指出我如何防止它被包括在内?

4

2 回答 2

3

这有效:

<?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

于 2009-01-18T04:33:22.727 回答
3

Ant 具有预先配置的默认排除项,可防止基于目录的任务处理 CVS、Subversion 和 VSS 的控制文件。不幸的是,这些默认值不包括任何其他版本控制系统。但是,您可以使用<defaultexcludes> 任务修改默认值:

<defaultexcludes add="**/.git/**,**/.gitignore"/>

这将从任何后续处理中排除您的 Git 文件(因此每次后续使用 <tar>、<javac>、<jar> 或类似文件都会忽略控制文件)。

于 2009-01-18T18:33:17.110 回答