关于gradle中任务执行的顺序

时间:2015-12-14 10:42:48

标签: android gradle

我已经在我的应用程序的gradle文件中为我的Android应用程序定义了两个任务。我的应用程序有两种风格,我希望这两个任务只针对一种风格运行。为此,我使用以下gradle配置:

task A << { ... }

task B << { ... }

tasks.whenTaskAdded { task ->
    if(task.name.contains('assembleFreeVersion')) {
        task.dependsOn A
        task.dependsOn B
    } 
}

我的问题是:在任务B执行完毕后,任务A是否总是被执行?如果没有,我该怎么做才能确保没有紧密耦合任务A和B(即我仍然可以运行一个任务而不运行另一个任务)?

1 个答案:

答案 0 :(得分:4)

简短的回答是否定的。依赖关系不指定顺序。要指定您需要使用mustRunAfter的订单:

task A << { ... }

task B << { ... }

tasks.whenTaskAdded { task ->
    if(task.name.contains('assembleFreeVersion')) {
        task.dependsOn A
        task.dependsOn B
        B.mustRunAfter A
    } 
}