如何在任务图结束时执行gradle任务?

时间:2018-01-09 10:07:39

标签: android-studio gradle android-gradle build.gradle

如何在任务图结束时执行任务。

任务

task lastTask{
        //do something
}

应该在任务图的末尾执行。

完成以下操作是否足够?

project.taskgraph.whenReady{
    lastTask
}

2 个答案:

答案 0 :(得分:1)

任务图在Gradle的配置阶段得到解决。您无法在配置阶段执行任务,只能在执行阶段执行任务。

请参阅build lifecycle phases

也许您希望您的任务始终在任何其他任务之前执行?在这种情况下你可以做

task myTask {
    doLast { ... }
}
tasks.all { Task t ->
    if (t != myTask) {
        t.dependsOn myTask       
    }
}

答案 1 :(得分:0)

有两种方法可以实现这一目标。

dependsOn

finalizedBy

如果任务之间存在关系,并且第二个任务依赖于第一个任务,则将使用第一个任务。如果之前的任务有某种帮助,则可以使用后者。 here也对此进行了说明。

这两种方法都可以与任务图的前一个最后一个任务结合使用。