Gradle 根据渐变中的生成类型更新值
我正在使用Android Studio和Gradle构建。 在my build.gradle中,我希望变量的值对于不同的构建类型是不同的:Gradle 根据渐变中的生成类型更新值,gradle,android-gradle-plugin,build.gradle,gradlew,Gradle,Android Gradle Plugin,Build.gradle,Gradlew,我正在使用Android Studio和Gradle构建。 在my build.gradle中,我希望变量的值对于不同的构建类型是不同的: ext { //By default, the value of myVar is 'debug' myVar = 'debug' } android { buildTypes { release { //update value of myVar to 'release'
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)
当我运行命令gradlecleansassembleerelease
时,我希望看到打印出来的文本我的var是release
。但是,我看到我的var是debug
。为什么myVar
的值未更改为release
我想要实现的是在执行期间获取当前构建类型。有没有更好的方法来实现这一点?这不起作用,因为它是一个项目范围内的变量。构建类型块只是配置,所以这里真正发生的事情(虽然有点简化):
仅供参考:你可以简化2。三,。只要调用
project.myVar='whatever'
在执行时打印myVar
(在任务操作中),它的行为与在配置时打印的行为相同?什么是“配置时”?请参见此处:您能否详细说明您试图用它实现什么,以便我们可以找到一个有效的解决方案?然后,我如何解决这个问题?您在构建中使用'myVar'变量做什么?请记住,您可以在一个构建运行中同时构建(调试和释放)APK。我的自定义任务需要知道当前的构建类型,并将其作为参数传递给shell脚本。该任务执行shell脚本。通常,每个构建变量都会有一个任务执行此任务。我更新了我的答案以向您展示一个示例。您似乎还没有更新您的答案,您能否给出一个关于“每个构建变量一个任务完成”的示例?谢谢