我正在使用带有Gradle构建的Android Studio。 在我的 build.gradle 中,我希望变量的值对于不同的构建类型是不同的:
ext {
//By default, the value of myVar is 'debug'
myVar = 'debug'
}
android {
buildTypes {
release {
//update value of myVar to 'release'
project.ext.set("myVar","release")
}
debug {
//update value of myVar to 'debug'
project.ext.set("myVar","debug")
}
}
}
//I defined a task to check the value of myVar
task checkVar () {
println "My var is $myVar"
}
check.dependsOn(checkVar)
当我运行命令gradle clean assembleRelease
时,我希望看到打印输出文本My var is release
。但是,我看到My var is debug
。为什么myVar
的值未更改为release
?
我想要实现的是在执行期间获取当前构建类型。有没有更好的方法来实现这一目标?
答案 0 :(得分:0)
这不起作用,因为它是项目范围的变量。构建类型块只是配置,所以这里真正发生了什么(虽然有点简化):
执行'checkVar'任务时,将打印最后指定的值。
仅供参考:您可以通过调用project.myVar = 'whatever'