Gradle aktuelle Geschmack für eine bestimmte Aufgabe

Ich versuche, Umgang mit google-services.json und verschiedenen Geschmacksrichtungen. Die Dokumentation sagt, dass wir die Datei in den root-Ordner.

Bekam ich eine Aufgabe, die können einfach kopieren Sie die Datei vom Geschmack Ordner in den root-Ordner:

task CopyToRoot(type: Copy) {
    def appModuleRootFolder = '.'
    def srcDir = 'src'
    def googleServicesJson = 'google-services.json'

    outputs.upToDateWhen { false }
    def flavorName = android.productFlavors.flavor1.name

    description = "Switches to $flavorName $googleServicesJson"
    delete "$appModuleRootFolder/$googleServicesJson"
    from "${srcDir}/$flavorName/"
    include "$googleServicesJson"
    into "$appModuleRootFolder"
}

Dann, in der afterEvaluate ich Kraft

afterEvaluate {
    processFlavor1DebugGoogleServices.dependsOn CopyToRoot
    processFlavor1ReleaseGoogleServices.dependsOn CopyToRoot
}

Dies funktioniert nur für den Geschmack 1 (statisch definiert). Wie Sie dies tun, für jeden Geschmack? Ich habe 4 Geschmacksrichtungen. Wie man den aktuellen Kernel kompiliert wird?

[UPDATE 1] -
Auch versucht:

task CopyToRoot(type: Copy) {
    def appModuleRootFolder = '.'
    def srcDir = 'src'
    def googleServicesJson = 'google-services.json'

    outputs.upToDateWhen { false }
    def flavorName = android.productFlavors.flavor1.name

    android.applicationVariants.all { variant ->
        def flavorString = variant.getVariantData().getVariantConfiguration().getFlavorName()
        println('flavorString: ' + flavorString)

        description = "Switches to $flavorString $googleServicesJson"
        delete "$appModuleRootFolder/$googleServicesJson"
        from "${srcDir}/$flavorString/"
        include "$googleServicesJson"
        into "$appModuleRootFolder"
    }
 }

Aber dies bedeutet nicht, kopieren Sie die richtige Datei. Keine Hilfe?

  • eine alternative Lösung? Wie tun Sie es dynamisch?
InformationsquelleAutor Nunes D. | 2015-09-18
Schreibe einen Kommentar