Create a directory with a “from” directory containing an empty file called “a:b”. Then, with this build.gradle:
task c(type: Copy) {
from('from')
into('to')
}
run ‘gradle c’ and observe the following output:
:c FAILED
FAILURE: Build failed with an exception.
* What went wrong: Execution failed for task ':c'. > Cannot convert URL 'a:b' to a file.
This appears to have started at gradle 1.8. I ran into this with gradle 1.11 and tried every old version until I found one where it worked.
(I wish there were a preview button when editing posts.)
My workaround is to use this function:
def renameFiles(dir, pat, repl) {
fileTree(dir).each { file ->
def newfile = file.path.replaceAll(pat, repl)
if (newfile != file.path) {
file.renameTo(newfile)
}
}
}
to replace : with @@ before copying and replace @@ back with : after copying. My real code isn’t doing just a straight copy. It is using an eachFile closure over the contents of the files.
Confirmed with 1.11 and raised GRADLE-3037. Thanks for reporting.