gradle - 如何从Gradle中的子目录复制?

标签 gradle groovy copy

假设我具有以下文件夹结构:

folder
  -subfolderA
    -module1.mod
      -module1.a
      -module1.b
      -module1.c
    -module2.mod
      -module2.a
      -module2.b
      -module2.c
    -module1.d
  -subfolderB
    -module3.mod
      -module3.a
      -module3.b
      -module3.c
    -module3.d

我只想弄平目录的“子文件夹”层,产生以下内容:
outputFolder
  -module1.mod
    -module1.a
    -module1.b
    -module1.c
  -module2.mod
    -module2.a
    -module2.b
    -module2.c
  -module3.mod
    -module3.a
    -module3.b
    -module3.c
  -module1.d
  -module3.d

我希望这非常简单,它具有:
copy {
    from "folder/*/"
    into "outputFolder"
}

但这没有用。展平一个(或多个)子目录层的最简单方法是什么?

最佳答案

您可能会这样做

copy {
    from 'folder' 
    include '*/**/*.*' 
    eachFile { FileCopyDetails fcd ->
        int slashIndex = fcd.path.indexOf('/')
        fcd.path = fcd.path.substring(slashIndex+1)
    } 
    into "outputFolder"
} 

也许
copy {
   from { file('folder').listFiles().findAll { it.directory } } 
   into "outputFolder"
} 

关于gradle - 如何从Gradle中的子目录复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58176104/

相关文章:

ios - Objective C 中的可变副本有什么作用

ant - gradle wsimport 多个绑定(bind)

java - 一点一点地用 Groovy 代替 Java

amazon-s3 - 带有 ContentEncoding 参数的 boto3 s3 copy_object

grails - 将分页选项应用于 Grails 中的一对多列表

java - 如何在gradle中创建文件集合的集合?

java - 尝试复制 HashMap 存储时出错

android - Android Studio构建失败:Android资源链接失败,无法创建目录C:\tmp\

android - 在提供给应用程序之前混淆aar

android - 添加依赖项时出错 - Android Studio