1

次のようなビルドファイルを見る:

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')
}

同じディレクトリとの間でファイルをコピーすることは可能ですが (驚くべきことに NotBusted タスク)、projectDir との間でコピーすることはできないようです。これにより、大きなファット IOException がスローされます。

org.gradle.api.UncheckedIOException: java.io.IOException: 別のプロセスがファイルの一部をロックしているため、プロセスはファイルにアクセスできません

Copy を使用して単純なテンプレートを作成しようとしていますが、これは賢明ではないかもしれませんが、これが機能しない理由はありますか? それについてもっと良い方法はありますか?

ティア……

4

2 に答える 2

1

以下を試してください

task copyFiles(){
    doLast{
         ant.copy( todir: "c:\temp\destinationfolder" ){
             fileset( dir: "c:\temp\sourcefolder" )
         }
    }

}
于 2016-07-14T14:56:06.210 に答える