从 Gradle 中的 FileTree 中排除文件

Posted

技术标签:

【中文标题】从 Gradle 中的 FileTree 中排除文件【英文标题】:Exclude files from FileTree in Gradle 【发布时间】:2014-02-21 09:51:41 【问题描述】:

我想从 src

中排除 src\mainsrc\test 文件
FileCollection files = 
project.fileTree(/src/).minus(project.fileTree(/src\main/)).minus(project.fileTree(/src\test/))

如何在不使用双减号的情况下排除此目录?

【问题讨论】:

【参考方案1】:

FileTree 中排除子目录的惯用方法是:

def files = fileTree("src").matching 
    exclude "main", "test" // relative to the file tree's root directory

PS:你可以用-代替.minus

【讨论】:

我在徘徊可以通过 ArrayList ["src/main","src/test"] on FilerTree 之类的吗? 如果有多个根,则需要创建多个文件树,并与+结合。对于任务或扩展的用户,如果任务/扩展接受代表根目录的Object(或List<Object>)并在内部转换为 FileTree,则可能会更方便。有关 API 详细信息,请参阅 Gradle Build Language Reference(例如 Project#fileTree)和 Javadoc/Groovydoc。

以上是关于从 Gradle 中的 FileTree 中排除文件的主要内容,如果未能解决你的问题,请参考以下文章