我正在使用Ant 1.7.1来查找包含.git子目录的目录的内容。我目前的任务是
<tar
destfile="sali-src-${version}.tgz"
basedir="${basedir}"
compression="gzip"
excludes=".git, .gitignore, *.ipr, *.iws, *.iml">
</tar>
但是生成的tarball包含.git子目录。有人能指出我怎么能阻止它被收录?
答案 0 :(得分: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
答案 1 :(得分:3)
Ant有pre-configured default excludes,阻止基于目录的任务处理CVS,Subversion和VSS的控制文件。不幸的是,这些默认值不包括任何其他版本控制系统。但是,您可以使用<defaultexcludes> task修改默认值:
<defaultexcludes add="**/.git/**,**/.gitignore"/>
这将从任何后续处理中排除您的Git文件(因此每次后续使用&lt; tar&gt;,&lt; javac&gt;,&lt; jar&gt;或类似文件都将忽略控制文件)。