【发布时间】:2017-08-26 16:02:18
【问题描述】:
我想在我的 build.gradle 文件中创建一个新风格,但它完全复制了另一种风格。我将其用于测试目的。只有 applicationid 后缀会有所不同。这种味道我想被称为beta。但我希望有一种方法不必重复代码。因为它具有与我的 staging 风格相同的设置,有没有办法我可以告诉 gradle 复制与 staging 风格相同的设置。我的口味是这样定义的:
productFlavors {
def STRING = "String"
def BOOLEAN = "boolean"
def TRUE = "true"
def FALSE = "false"
def FLAVOR = "FLAVOR"
def RETROFIT_LOG_ALL = "RETROFIT_LOG_ALL"
def BASE_ENDPOINT = "BASE_ENDPOINT"
staging {
buildConfigField STRING, BASE_ENDPOINT, '"https://pepsi-staging-api.pmlo.co"'
buildConfigField STRING, BASE_IMGIX_ENDPOINT, '"myappfashion.imgix.net"'
buildConfigField STRING, BASE_ENDPOINT_WEB, '"www.pepsi-staging.pmlo.co"'
buildConfigField BOOLEAN, RETROFIT_LOG_ALL, TRUE
manifestPlaceholders = [appDrawerName: "myapp-Staging"]
ext.enableCrashlytics = false
versionNameSuffix '-STAGING'
applicationIdSuffix 'staging'
}
//why do i have to copy the same settings again, is there a way to just over ride from the staging flavor the things i want changed ?
beta {
buildConfigField STRING, BASE_ENDPOINT, '"https://pepsi-staging-api.pmlo.co"'
buildConfigField STRING, BASE_IMGIX_ENDPOINT, '"myappfashion.imgix.net"'
buildConfigField STRING, BASE_ENDPOINT_WEB, '"www.pepsi-staging.pmlo.co"'
buildConfigField BOOLEAN, RETROFIT_LOG_ALL, TRUE
manifestPlaceholders = [appDrawerName: "myapp-Staging"]
ext.enableCrashlytics = false
versionNameSuffix '-beta' //only these two thigns are different
applicationIdSuffix 'beta'
}
prod {
// applicationId "com.mobile.myapp"
buildConfigField STRING, BASE_ENDPOINT, '"https://api.myappfashion.com"'
buildConfigField STRING, BASE_IMGIX_ENDPOINT, '"myappfashion.imgix.net"'
buildConfigField STRING, BASE_ENDPOINT_WEB, '"www.myappfashion.com"'
buildConfigField BOOLEAN, RETROFIT_LOG_ALL, FALSE
ext.enableCrashlytics = true
manifestPlaceholders = [appDrawerName: "myapp"]
}
}
i just want to override versionNameSuffix & applicationIdSuffix only in beta and copy all values from staging. is there a way not to duplicate code like this example ?
【问题讨论】:
-
只需使用
defaultConfig就像在 this answer 中一样 -
我明白你的意思。有时它虽然不是默认设置。它只是我希望它具有与另一种风味相同的设置,而无需再次复制所有值。但很好的评论。我认为没有办法做到这一点,因为我找不到任何东西
标签: android android-gradle-plugin