查看构建文件,如:
task busted(type: Copy){
from "${projectDir}/foo"
into projectDir
rename 'foo','bar'
expand(baz:'qux')
}
task alsoBusted(type: Copy){
from 'foo'
into projectDir
rename 'foo','bar'
expand(baz:'qux')
}
task moreBusted(type: Copy){
from projectDir
into projectDir
include 'foo'
rename 'foo','bar'
expand(baz:'qux')
}
task notBusted(type: Copy){
from 'foo'
into "${projectDir}/quux"
rename 'foo','bar'
expand(baz:'qux')
}
task surprisinglyNotBusted(type: Copy){
from 'quux'
into "${projectDir}/quux"
include 'foo'
rename 'foo','bar'
expand(baz:'qux')
}似乎可以将文件从同一个目录复制到同一个目录(任务surprisinglyNotBusted),但不可能复制到projectDir,这会抛出一个很大的IOException:
org.gradle.api.UncheckedIOException: java.io.IOException:进程无法访问文件,因为另一个进程锁定了文件的一部分
我试图使用复制来做一些简单的模板,这可能不是明智的,但这是否有原因不能发挥作用呢?有什么更好的方法吗?
蒂娅..。
发布于 2014-10-07 19:00:04
当将文件直接复制到项目目录时,这是一个错误。当任务的输出设置为项目目录时,这似乎是一个问题。例如,以下内容显示了相同的行为:
task notCopyButStillBusted {
outputs.dir projectDir
doLast {
println "IOException on Windows sadly"
}
}到目前为止,我发现的唯一解决办法是定义您自己的复制行为:
task copyWorks {
inputs.file "/path/to/Makefile"
outputs.dir "$projectDir/Makefile"
doLast {
copy {
from "/path/to/Makefile"
into projectDir
}
}
}这适用于显式文件,当一次复制多个文件时可能会更困难。
你可以投票给分级-3002来吸引更多的注意力来解决这个问题。
发布于 2016-07-14 14:56:06
试试下面的方法
task copyFiles(){
doLast{
ant.copy( todir: "c:\temp\destinationfolder" ){
fileset( dir: "c:\temp\sourcefolder" )
}
}
}https://stackoverflow.com/questions/19801961
复制相似问题