Ant zip任务默认排除哪些文件?

Dan*_*Dan 3 java ant zip

我正在运行一个Ant zip任务来压缩Unix系统上目录的全部内容:

<zip destfile="${deploy}/test.zip">
    <zipfileset dir="/home/mydir" />
</zip>
Run Code Online (Sandbox Code Playgroud)

创建zip并检查内容后,我可以看到一些配置文件,Visual Studio特定文件和Mac OS .DS_STORE文件等其他文件都被省略了.

是否有任何规则蚂蚁来决定不包含哪些文件?

我需要事先知道,因为我需要在压缩之前创建该目录上的现有文件列表(当前使用Java).现在我排除所有目录和隐藏文件(使用File.isHidden()和isDirectory()方法),但列表仍然得到一些文件Ant lefts(例如,vssver.scc)

Zac*_*son 5

文档中,或使用Konstantin的解决方案来检查您的特定安装:

默认情况下,所有基于目录的任务都会排除一组定义.从Ant 1.8.1开始,它们是:

 **/*~
 **/#*#
 **/.#*
 **/%*%
 **/._*
 **/CVS
 **/CVS/**
 **/.cvsignore
 **/SCCS
 **/SCCS/**
 **/vssver.scc
 **/.svn
 **/.svn/**
 **/.DS_Store
Run Code Online (Sandbox Code Playgroud)

Ant 1.8.2添加了以下默认排除:

 **/.git
 **/.git/**
 **/.gitattributes
 **/.gitignore
 **/.gitmodules
 **/.hg
 **/.hg/**
 **/.hgignore
 **/.hgsub
 **/.hgsubstate
 **/.hgtags
 **/.bzr
 **/.bzr/**
 **/.bzrignore
Run Code Online (Sandbox Code Playgroud)

  • 这也是Jenkins Clone workspace SCM插件不克隆`.git`目录的原因。(见链接问题) (2认同)

Kon*_*hik 4

尝试这个:

<defaultexcludes echo="true"/>
Run Code Online (Sandbox Code Playgroud)

http://ant.apache.org/manual/Tasks/defaultexcludes.html

请注意,这适用于所有使用文件集的 Ant 任务,而不仅仅是 zip 任务。