Gradle - 如何仅针对特定类型的文件在 fileTree 中进行迭代
Gradle - how to iterate in fileTree only for certain type of file
在我的 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"
不起作用。
感谢任何建议
您应该使用 matching
method from FileTree
. It uses a PatternFilterable
作为参数。
试试看:
fileTree("${project.projectDir}/dir").matching {
include "**/*.json"
}.each {
// do some operations
}
在我的 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"
不起作用。
感谢任何建议
您应该使用 matching
method from FileTree
. It uses a PatternFilterable
作为参数。
试试看:
fileTree("${project.projectDir}/dir").matching {
include "**/*.json"
}.each {
// do some operations
}