gradle - 使用gradle将源目录列表下的文件复制到目标目录

标签 gradle groovy copy

我需要将目录列表下的文件复制到目标列表中的相应目录。假设我有一个源目录列表,例如'A','B','C'和一个目标目录列表,例如'X','Y','Z'。我需要做的是将文件A复制到X目录,然后从B复制到Y,将C复制到Z。为此,我创建了gradle任务。但我得到一个错误

task copyDirs( ) {
  def targetDirList = ['/target1', '/target2', '/target3'].toArray()
  def sourceDirList = ['/source1', '/source2', '/source3'].toArray()

  [sourceDirList,targetDirList].transpose().each {
    copy{
        from it[0].toString()
        into it[1].toString()
    }
  }
}

下面是我尝试执行它时遇到的异常
 No signature of method: org.gradle.api.internal.file.copy.CopySpecWrapper_Decorated.getAt() is applicable for argument types: (java.lang.Integer) values: [0]
 Possible solutions: getAt(java.lang.String), putAt(java.lang.String, java.lang.Object), wait(), grep(), getClass(), wait(long)

最佳答案

这是因为您使用的it与复制关闭有关,而不是您要遍历的值。只需命名您的元素:

[sourceDirList,targetDirList].transpose().each { d ->
    copy{
        from d[0].toString()
        into d[1].toString()
    }
}

关于gradle - 使用gradle将源目录列表下的文件复制到目标目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36887218/

相关文章:

java - Android studio dalvik vm 找不到类

android - 找不到 manifest-merger.jar (com.android.tools.build :manifest-merger:26. 0.1)

regex - Groovy replaceAll 替换包含美元符号的地方?

gradle - 与Gradle相关的任务不会将命令行选项传递给父任务

c++ - 在 C++ 中通过构造函数复制类

c++ - 两个 C++/CX Platform::Array:s 之间的高效复制方法?

java - 执行生成的jar文件出错

android - 无法从 aar 访问类

java - 在不损失质量的情况下读取/写入 JPG 图像的最快方法?

java - 与jProgressBar同步复制显示