我需要将目录列表下的文件复制到目标列表中的相应目录。假设我有一个源目录列表,如'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)
答案 0 :(得分:1)
这是因为您使用的it
与复制结束有关,而不是您正在重复使用的值。只需命名您的元素:
[sourceDirList,targetDirList].transpose().each { d ->
copy{
from d[0].toString()
into d[1].toString()
}
}