我正在Gradle(Android Studio)中构建Android应用程序的不同产品风格.
因此我定义了以下产品口味:
android {
project.ext.set("customer", "")
project.ext.set("server", "")
//Configuration happens here - code removed for readability
buildTypes {
debug {
server = "test"
}
release {
server = "release"
}
}
//Available product flavors
productFlavors {
customerA{
customer = "a"
}
customerB{
customer = "b"
}
customerC{
customer = "c"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,稍后,当我在我的一个构建任务中访问定义的项目属性"customer"(其值在我正在构建的产品风格中设置)时,即使iam构建customerA,它也始终具有值"c"(在这种情况下,财产客户应该是"a"而不是"c").例如,我稍后执行以下任务:
preBuild << {
println "Building customer: " + customer
}
Run Code Online (Sandbox Code Playgroud)
它始终打印:
建立客户:c
所以我猜有一些覆盖发生?可能与配置VS执行阶段有关?不知道如何/为什么,所以任何帮助都非常感谢.
更新:或者它会让我进一步确定产品风格的名称(没有附加到它的构建类型名称)和构建类型(再次:没有产品风味名称前置),在gradle构建的执行阶段.
考虑到上述配置,预期的产品风味名称将是:customerA,customerB和customerC.