我有一个gradle构建,我需要根据它是发布版本还是调试版本来进行不同的配置。 问题是gradle构建不区分这两者。
例如:
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
buildTypes {
debug {
println 'debug'
}
release {
println 'release'
}
}
}
当我使用#gradle assembleRelsease'或者使用' gradle assembleDebug',它会同时打印' release'和'调试'在这两种情况下,甚至当我在android studio中使用debug(来自Build Variants)构建时。它根本无法区分它。我所怀疑的是,当我构建发行版时,它只会打印出来'发布'当我构建degub时,它只打印' debug'。有没有人能解决这个问题?我做错了吗?
答案 0 :(得分:1)
您的脚本将为调试和发布库变体生成预期结果(不同的.aar):它只是一直打印所有内容。
您遇到的是Gradle lifecycle,它经历了初始化,配置和执行阶段。
由于许多build.gradle文件(Android项目通常至少有2个)用于不同目录和子项目的构建过程,并且您可以在构建文件的排序中使用它们之后定义任务,我猜前两个阶段在构建文件之前执行扫描和分析。
配置遍历所有命令,包括println语句。 (参见this example)也许他们选择在配置期间实际打印println以便于调试。