gpt4 book ai didi

android - Gradle 调用 preDebugBuild 和 preReleaseBuild

转载 作者:太空狗 更新时间:2023-10-29 14:49:19 26 4
gpt4 key购买 nike

我正在尝试为 Android 组装调试构建类型的库。

我在我的 gradle 脚本中设置了这段代码:

task setDebug(dependsOn: 'preDebugBuild') {
project.ext.set("pathType", "debug")
println('DEBUG')
}

task setRelease(dependsOn: 'preReleaseBuild') {
project.ext.set("pathType", "release")
println('RELEASE')
}

事情是,当我运行 gradle 时:

gradle assembleDebug

DEBUG 和 RELEASE 都打印在屏幕上,因此我的 pathType 变量始终为“release”。但是在 gradle 输出中我只能看到正在调用的调试任务。

这怎么可能?

最佳答案

block 在配置阶段执行。如果您想将代码块从评估推迟到执行阶段,那么您可以使用这样的模式

task setDebug(dependsOn: 'preDebugBuild') << {
// ...
}

这将等到任务的实际执行而不是任务的配置来评估闭包。

您当前执行此操作的方式会导致每次执行 gradle 时都会评估两个代码块。例如现在如果你刚刚运行 gradle如果不指定任务,您会同时看到 println日志中的语句。使用 <<无论任务如何,都应该解决您正在评估的闭包问题。

关于android - Gradle 调用 preDebugBuild 和 preReleaseBuild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36748078/

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