2016-07-25 12 views
3

Wie kann man beim Erstellen eines benutzerdefinierten Gradle-Plugins auf die Erweiterungseigenschaften zugreifen, die pro Buildtype/Flavor im aufwändigen Build.gradle definiert sind?Handhabung pro Buildtyp/Flavor-Konfiguration im Custom Gradle-Plugin

Ich habe folgende Erweiterungsklasse -

TestExtension { 
    String name; 
    String address; 

    // getters and setters 

    }; 

Consumer dieses gradle Plugin würde Eigenschaften mit Hilfe Verschlüsse bevölkern, wie unten gezeigt -

// default 
Test { 
    address = "default address" 
} 
android { 
    buildTypes { 
     release { 
      Test { 
       name = "release-mode" 
      } 
     } 
     } 
     debug { 
      Test { 
       name = "debug-mode" 
      } 
     } 
    } 
} 

Im gradle Plugin, ich erstellen und eine separate laufen Aufgabe für jeden Buildtyp. Wie greifen Sie auf die richtigen Eigenschaften zu, wenn eine bestimmte Aufgabe ausgeführt wird? Zum Beispiel bekomme ich nie die richtige name Eigenschaft, wenn releasetask ausgeführt wird. es ist immer auf "Debug-Modus" eingestellt. Jede Hilfe wird geschätzt!

Antwort

1

innerhalb des apply(Project project){} -Methode Ihrer benutzerdefinierten Gradle-Plugin (geschrieben in Groovy):

project.android.applicationVariants.all{ variant -> 
    //do your variant specific code here 
}