如何执行匿名Gradle任务?
我想在某个任务上添加一个钩子,并用variant.mergedFlavor.packageName
执行另一个任务。
android.applicationVariants.all { variant ->
tasks.getByName("prepare${variant.name}Dependencies").finalizedBy({
doFirst {
println variant.mergedFlavor.packageName
}
})
}
我想要实现的是prepare${variant.name}Dependencies
任务将由任务完成
download${variant.name}RawData
任务。
这样做的正确方法是什么?
答案 0 :(得分:4)
没有匿名任务,但您可以使用常规(命名)任务:
android.applicationVariants.all { variant ->
def downloadTask = task("download${variant.name}RawData") {
doFirst {
println variant.mergedFlavor.packageName
}
}
tasks["prepare${variant.name}Dependencies"].finalizedBy(downloadTask)
}
也就是说,我不确定在prepare
回调启动时applicationVariants.all { ... }
任务是否可用。如果没有,您可能必须推迟finalizedBy
行,例如用project.afterEvaluate { ... }
包装它。