一旦从Android Studio中的“构建变体”窗口中更改了构建变体,是否有一种方法可以运行干净的构建任务。我在我的项目中使用List<Path> listC = Files.list(Paths.get("")).filter(p -> p.toString().endsWith(".txt"))
.collect(Collectors.toList());
和productFlavors
,该项目共有9个构建变体。这是我的代码,用于在flavorDimensions
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
}
文件夹,并且不会清理以前创建的构建文件夹。当我在不执行“清理构建”的情况下运行应用程序时,有时会选择生成的错误BuildConfig,而应用程序仍指向错误的服务器。
我需要编写一个自定义任务,或者是否有更好的方法来运行构建清理任务。这样,我可以确保只有一个BuildConfig,并且该应用指向正确的服务器。
我是build/generated/
的初学者,欢迎提出任何建议。