2016-04-27 70 views
0

我需要將目錄列表下的文件複製到目標列表中的相應目錄。假設我有一個源目錄列表,如'A','B','C'和目標目錄列表,如'X','Y','Z'。我需要做的是複製A目錄下的文件,將其複製到X目錄,並從B複製到Y和C到Z.爲此,我創建了一個Gradle任務。但是,我得到一個錯誤將源目錄列表下的文件複製到使用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) 

回答

1

這是因爲it您所使用的與複印關閉,而不是值你正在迭代。只需說出您的元素:

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