6 votes

Gradle - comment itérer dans fileTree seulement pour certains types de fichiers

Dans ma tâche gradle, j'itère à travers fileTree et tout fonctionne bien :

myTask {
  fileTree("${project.projectDir}/dir").visit { FileVisitDetails details ->
    exec {
      //do some operations
    }
  }
}

mais maintenant j'ai différents types de fichiers dans mon répertoire :

dir
 sub1
    file1.json
    file2.js
 sub2
    file1.json
    file2.js
 sub3
     file1.js
     file2.json

Comment itérer pour seulement certains types de fichiers ? Parce que

"${project.projectDir}/folder/dir/**/*.json"

ne fonctionne pas.

Merci pour tout conseil

4voto

ToYonos Points 10347

Vous devez utiliser le matching méthode de FileTree . Il utilise un PatternFilterable comme paramètre.

Essayez cela :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X