Gradle-如何仅针对特定类型的文件在fileTree中进行迭代

时间:2018-11-07 13:41:14

标签: gradle filetree

在我的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 个答案:

答案 0 :(得分:2)

您应该使用FileTree中的matching方法。它使用PatternFilterable作为参数。

尝试:

fileTree("${project.projectDir}/dir").matching {
    include "**/*.json"
}.each {
    // do some operations
}