[flavors 过滤条件改为json配置]
This commit is contained in:
yangyakun
2023-03-17 14:27:34 +08:00
parent 167cf71911
commit 1f8ba19603
3 changed files with 70 additions and 1 deletions

View File

@@ -295,7 +295,7 @@ android {
apply from: "./productFlavors/ochDriverM1.gradle"
apply from: "./productFlavors/ochPassengerM1.gradle"
apply from: "./productFlavors/fMultiDisplaySweeper.gradle"
apply from: "./productFlavors/flavorsFilterConfig.gradle"
apply from: "./flavorfilter/flavorsFilterConfig.gradle"
packagingOptions {
exclude 'META-INF/io.netty.versions.properties'

View File

@@ -0,0 +1,26 @@
{
"mogo": {
"noop" :["fPadLenovo"],
"sweeper" :["fOchSweeper"],
"shuttle" :["fOchShuttle","fOchShuttlePassenger"],
"taxi" :["fOchTaxi","fOchTaxiPassenger","fMultiDisplayOchTaxi"],
"bus" :["fOchBus","fOchBusPassenger","fMultiDisplayOchBus","fOchBusPassengerM2"],
"charter" :["ochDriverM1","ochPassengerM1"]
},
"dali": {
"noop" :[""],
"sweeper" :[""],
"shuttle" :["fOchShuttle","fOchShuttlePassenger"],
"taxi" :[],
"bus" :["fOchBus","fOchBusPassenger","fMultiDisplayOchBus","fOchBusPassengerM2"],
"charter" :["ochDriverM1","ochPassengerM1"]
},
"yantai": {
"noop" :[""],
"sweeper" :["fOchSweeper"],
"shuttle" :["fOchShuttle","fOchShuttlePassenger"],
"taxi" :[],
"bus" :[],
"charter" :["ochDriverM1","ochPassengerM1"]
}
}

View File

@@ -0,0 +1,43 @@
import groovy.json.JsonSlurper
File file = new File("${rootDir}/app/flavorfilter/flavors.json")
def jsonSlurper = new JsonSlurper()
// 解析json
def config = jsonSlurper.parse(file)
project.android.variantFilter { variant ->
def names = variant.flavors*.name
//要检查特定的构建类型请使用variant.buildType.name ==“ <buildType>”
def projectContain = true
config.each { project,value ->
if(names.contains(project)){
projectContain = false
def productContain = true
value.each{product,vehicles->
if(names.contains(product)){
productContain =false
def vehicleContain = true
vehicles.each{vehicle->
if (names.contains(vehicle)) {
println "need $names"
vehicleContain = false
}
}
if(vehicleContain){
setIgnore(true)
}
}
}
if(productContain){
setIgnore(true)
}
}
}
if(projectContain){
setIgnore(true)
}
}