Gradle-如何在复制任务完成操作后执行某些操作?

Gradle-如何在复制任务完成操作后执行某些操作?,gradle,Gradle,我有一个任务: task myCopy(type: Copy) { from 'from.txt' into 'into.txt' doLast { //Read write 'into.txt' } } 它总是打印一个FileNotFoundException,我发现doLast块是在复制操作完成之前执行的,那么当我的复制操作完成时,我如何用读取(或写入)到.file中呢?这里您没有以正确的方式使用复制任务:“进入”属性是复制文件的目标目录,而

我有一个任务:

task myCopy(type: Copy) {
    from 'from.txt'
    into 'into.txt'
    doLast {
        //Read write 'into.txt'
    }
}

它总是打印一个
FileNotFoundException
,我发现
doLast
块是在复制操作完成之前执行的,那么当我的复制操作完成时,我如何用
读取(或写入)到.file
中呢?

这里您没有以正确的方式使用复制任务:“进入”属性是复制文件的目标目录,而不是目标文件名。 在执行脚本时,您应该在项目的根目录中创建一个目录“input.txt”,并将文件“from.txt”复制到其中,这不是您所期望的,我猜这就是导致FileNotFoundException的原因

如果要复制/重命名文件,应使用CopyTask中的“重命名”方法,如下所述:

例如:

task myCopy(type: Copy) {
    from './source-file.txt'
    into './output-dir'
    rename ( 'source-file.txt', 'input.txt')
    doLast{
        println "Is file already copied when executing doLast ? ==>  "+   project.file("./output-dir/input.txt").exists()
    }
}
这应该输出:

$ gradle myCopy
> Task :myCopy
Is file already copied when executing doLast ? ==>  true