Есть ли способ запустить задачу чистой сборки после изменения варианта сборки из окна «Варианты сборки» в Android Studio.Я использую productFlavors
и flavorDimensions
в своем проекте, который имеет в общей сложности 9 вариантов сборки.Это мой код для создания вариантов сборки в app/build.gradle
flavorDimensions "name", "server"
productFlavors {
def PROPERTY = { property -> "\"${project.properties.get(property)}\"" }
flavor1 {
dimension "name"
applicationId "com.sample.app.flavorone"
ext {
dev = PROPERTY('f1.devServer')
qa = PROPERTY('f1.qaServer')
prod = PROPERTY('f1.prodServer')
}
}
flavor2 {
dimension "name"
applicationId "com.sample.app.flavortwo"
ext {
dev = PROPERTY('f2.devServer')
qa = PROPERTY('f2.qaServer')
prod = PROPERTY('f2.prodServer')
}
}
flavor3 {
dimension "name"
applicationId "com.sample.app.flavorthree"
ext {
dev = PROPERTY('f3.devServer')
qa = PROPERTY('f3.qaServer')
prod = PROPERTY('f3.prodServer')
}
}
dev {
dimension "server"
}
qa {
dimension "server"
}
prod {
dimension "server"
}
applicationVariants.all { variant ->
def flavors = variant.productFlavors
def name = flavors[0]
def environment = flavors[1]
variant.buildConfigField 'String', 'SERVER_URL', "${name[server.name]}"
}
У меня есть следующая задача чистой сборки в корне build.gradle
, но это не очищает все предыдущие сгенерированные папки сборки при измененииварианты сборки.
task clean(type: Delete) {
delete rootProject.buildDir
}
Теперь, когда я переключаюсь между этими вариантами сборки, он создает папку build/generated/
для каждого варианта сборки и не очищает ранее созданные папки сборки.Когда я запускаю приложение, не выполняя «Чистую сборку», иногда оно выбирает неправильно сгенерированный BuildConfig, и приложение все еще указывает на неправильный сервер.
Мне нужно написать пользовательскую задачу или, если есть какой-то лучший подходзапустить задачу сборки чистых.Таким образом, я могу гарантировать, что существует только один BuildConfig, и приложение указывает на нужный сервер.
Я новичок в productFlavors
, поэтому любые предложения приветствуются.