- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试为 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/
我将许多版本上传到App Store,但面临两个问题。 1. Build is invalid 2. ITC.app.preReleaseBuild.errors.invalidBinary 这些是什
我正在尝试为 Android 组装调试构建类型的库。 我在我的 gradle 脚本中设置了这段代码: task setDebug(dependsOn: 'preDebugBuild') { p
在将版本上传到iTunes后,我正在使用xcode 7.0在iOS应用程序上进行观看,并提供ITC.apps.preReleaseBuild.errors.invalidBinary。我该如何解决这个
我提交的应用程序版本为 1.2.1,构建版本为 1.0。该应用程序已成功上传到 iTunes connect,但它显示处理已久,之后显示红色标记并出现一些错误:ITC.apps.preReleaseB
我是一名优秀的程序员,十分优秀!