我不知道为什么不执行doFirst()和doLst()

时间:2019-04-21 18:20:39

标签: gradle task

我正在使用gradle 4.9。

DoFirst()和doLast()不能使用复制类型执行。

<select id='testSelect2' name="test" multiple>

<option value='1'> sunday</option >
<option value='2'> monday</option>
<option value='3'> tuesday</option>
<option value='4'> wensday</option>
<option value='5'> thrusday</option>
<option value='6'>friday </option>
<option value='7'>saturday </option>
</select>

gralde myCopyExtension

注意弹跳

追加-----

task myCopyExtension(type : Copy){
    from 'original'
    into 'target'

    File newFile = file('original/newFile.txt')
    doFirst {
        println 'write to file'
        newFile.write('copy file', 'UTF-8')
    }
    doLast {
        File copied = file('original/newFile_copied.txt')
        if(newFile.renameTo(copied)){
            println 'copy complete'
        }else {
            println 'copy failed'
        }
    }
}

分级myCopy

什么也没有输出。

T_T

1 个答案:

答案 0 :(得分:0)

在任务执行之前,gradle将进行最新检查,以查看自上次运行以来任务的输入/输出是否已更改。因此,如果自上次执行gradle以来“原始”和“目标”文件夹未更改,则将跳过任务

此外,您不应对用作任务输入的文件进行突变,因为它会破坏最新的检查结果。

请参见https://docs.gradle.org/current/userguide/more_about_tasks.html#sec:up_to_date_checks