Gradle - 如何仅针对特定类型的文件在 fileTree 中迭代
Posted
技术标签:
【中文标题】Gradle - 如何仅针对特定类型的文件在 fileTree 中迭代【英文标题】:Gradle - how to iterate in fileTree only for certain type of file 【发布时间】:2018-11-07 13:41:14 【问题描述】:在我的 gradle 任务中,我遍历 fileTree 并且一切正常:
myTask
fileTree("$project.projectDir/dir").visit FileVisitDetails details ->
exec
//do some operations
但现在我的目录中有不同类型的文件:
dir
├── sub1
│ ├── file1.json
│ └── file2.js
├── sub2
│ ├── file1.json
│ └── file2.js
└── sub3
├── file1.js
└── file2.json
如何只迭代特定类型的文件?因为
"$project.projectDir/folder/dir/**/*.json"
不起作用。
感谢您的建议
【问题讨论】:
【参考方案1】:您应该使用FileTree
中的matching
方法。它使用PatternFilterable
作为参数。
试试看:
fileTree("$project.projectDir/dir").matching
include "**/*.json"
.each
// do some operations
【讨论】:
有一些变化:fileTree("$project.projectDir/dir/").matching include "**/*.json" .visit FileVisitDetails details -> exec //do some operations
它可以工作! :) 感谢您的帮助以上是关于Gradle - 如何仅针对特定类型的文件在 fileTree 中迭代的主要内容,如果未能解决你的问题,请参考以下文章
如何在针对特定 Gradle 构建风格的同时从命令行运行单个单元测试方法
仅针对特定文件类型将菜单项添加到 Windows 上下文菜单