Gradle zip任务忽略文件名以。开头的文件。#

时间:2016-02-17 15:42:10

标签: gradle

我有一个简单的gradle zip任务, 我发现任何以。{from input文件夹开头的文件都会被忽略

task zipIt(type: Zip) {
   from 'input/'
   archiveName = 'output.zip'
}

有人知道为什么会这样吗?我怎样才能覆盖这种行为,所以我将这些文件包含在zip中?

稍后编辑: 明确添加文件模式似乎没有帮助

另一方面,查看@opal链接让我找到了解决方案:

import org.apache.tools.ant.DirectoryScanner

task zipIt(type: Zip) {
    doFirst{
        DirectoryScanner.removeDefaultExclude("**/.#*")
   }
   from 'input/'
   archiveName = 'output.zip'
}

2 个答案:

答案 0 :(得分:2)

对Opal的回答进行了解释,Gradle使用ANT's default excludes,如下所示:

从Ant 1.8.1开始,它们是:

 **/*~
 **/#*#
 **/.#*
 **/%*%
 **/._*
 **/CVS
 **/CVS/**
 **/.cvsignore
 **/SCCS
 **/SCCS/**
 **/vssver.scc
 **/.svn
 **/.svn/**
 **/.DS_Store

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

 **/.git
 **/.git/**
 **/.gitattributes
 **/.gitignore
 **/.gitmodules
 **/.hg
 **/.hg/**
 **/.hgignore
 **/.hgsub
 **/.hgsubstate
 **/.hgtags
 **/.bzr
 **/.bzr/**
 **/.bzrignore

默认排除.#。使用类似于以下内容的任务更新build.gradle文件应该允许您覆盖默认排除。

task copyPoundFiles(type: Copy) {
  from '/path/to/files'
  into '/dest/for/files'
  include '**/.#*'
}

答案 1 :(得分:1)

据我所知,gradle使用与ant相同的默认排除。您是否尝试过明确地包含该文件?

请进一步阅读herehere