ファイルをコピーするために Groovy スクリプト内にクロージャーを記述し、そのクロージャーを eachFileMatch(regex,closure) に渡して、指定された正規表現に一致するすべてのファイルをコピーします。Groovy コンソールでプロトタイプを作成したときはすべて問題なく動作しましたが、Eclipse で実行すると次のエラーが発生します。
groovy.lang.MissingMethodException: No signature of method: java.lang.String.eachFileMatch() is applicable for argument types: (java.util.regex.Pattern, file_copy$_run_closure3)
クロージャーと eachFileMatch() の呼び出しは次のとおりです。
def fileCopyClosure = {
if(it.canRead()){
def destFolder = new File("${outputDirectory}")
if(!destFolder.exists()){
println "Creating directory"
destFolder.mkdir()
}
def desti = new File("${outputDirectory}\\${it.name}")
output = desti.newOutputStream()
it.eachByte(1024, write)
output.close()
}
}
sourceDir.eachFileMatch(regex, fileCopyClosure)