gpt4 book ai didi

android - 如果另一个任务依赖于第一个任务运行,Gradle任务不会删除文件

转载 作者:行者123 更新时间:2023-12-03 03:32:22 26 4
gpt4 key购买 nike

我是Gradle的新手,很显然我缺少一些东西。我在gradle中有2个任务:

task myCopy(type: Copy) {
println 'copy1'
from 'src/main/java/android/app/cfg/TestingConfigCopy.java'
into 'src/main/java/android/app/cfg/temp'
}

task myDelete(dependsOn: 'myCopy', type: Delete) {
println 'delete1'
delete 'src/main/java/android/app/cfg/TestingConfigCopy.java'
}

当我删除依赖关系并按1逐个运行它们时,将复制文件,然后删除旧的文件,但是当我使用依赖关系并运行myDelete任务时,文件将被复制但不会被删除。我觉得我缺少Gradle的一些基本行为。这些任务位于android项目/ app目录下我的build.gradle文件的末尾。

最佳答案

myDelete任务中的代码正在任务的配置阶段执行。如果希望代码在执行阶段执行,则必须将代码放在任务的doLast子句中。

有两种方法可以做到这一点。您可以这样写:

task myDelete(dependsOn: 'myCopy', type: Delete) {
doLast {
println 'delete1'
delete 'src/main/java/android/app/cfg/TestingConfigCopy.java'
}
}

或者您可以使用 <<表示法:
task myDelete(dependsOn: 'myCopy', type: Delete) << {
println 'delete1'
delete 'src/main/java/android/app/cfg/TestingConfigCopy.java'
}

有关更多详细信息,请参见 gradle's build lifecycle documentation

关于android - 如果另一个任务依赖于第一个任务运行,Gradle任务不会删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33452069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com