2016-07-05 245 views
4

我正在使用fileTree實用程序來獲取文件列表,但需要從列表中排除除少數選定列表之外的所有目錄。Gradle fileTree排除除特定目錄以外的所有文件

我的目錄結構:

node_modules/ 
    react-native/ 
    react/ 
    third-party-package/ 
    another-package/ 

我需要排除除了命名之外的所有目錄反應本土和反應。

目前,我排除了所有node_modules,但是這不是我想要的......

fileTree(dir: '.', excludes: [ 'node_modules/**'])

我將如何做到這一點與文件樹?

回答

3

你可以爲此使用閉包。像這樣的:

fileTree(dir: '.').exclude {details -> 
    (details.file.canonicalPath.contains("node_modules") 
      && !details.file.canonicalPath.contains('react'))} 

你可以提供自己的條件文件,你想排除。這裏是最簡單的一個,其中檢查文件路徑,它們是否包含node_modules而不是react,如果條件爲真,則排除此文件。

當然,你必須使它更具體,但你可以自由地爲你提供任何條件的要求。