Tarea personalizada de Android Gradle por variante

Tengo una aplicación de Android construida con Gradle, que contiene BuildTypes y Flavors de producto (variantes). Por ejemplo, puedo ejecutar este comando para crear un apk específico:

./gradlew testFlavor1Debug ./gradlew testFlavor2Debug 

Tengo que crear una tarea personalizada en el build.gradle por variante, por ejemplo:

 ./gradlew myCustomTaskFlavor1Debug 

He creado una tarea para esto:

 android.applicationVariants.all { variant -> task ("myCustomTask${variant.name.capitalize()}") { println "*** TEST ***" println variant.name.capitalize() } } 

Mi problema es que esta tarea se llama para todas las variantes, no la única que estoy corriendo. Salida:

 ./gradlew myCustomTaskFlavor1Debug *** TEST *** Flavor1Debug *** TEST *** Flavor1Release *** TEST *** Flavor2Debug *** TEST *** Flavor2Release 

Rendimiento esperado:

 ./gradlew myCustomTaskFlavor1Debug *** TEST *** Flavor1Debug 

¿Cómo puedo definir una tarea personalizada, dinámica, por variante, y luego llamarla con la variante correcta?

One Solution collect form web for “Tarea personalizada de Android Gradle por variante”

Sucede porque la lógica se ejecuta en el momento de la configuración . Trate de añadir una acción ( << ):

 android.applicationVariants.all { variant -> task ("myCustomTask${variant.name.capitalize()}") << { println "*** TEST ***" println variant.name.capitalize() } } 
  • Prueba de una biblioteca de Android con Robolectric
  • ¿Hay una manera de saber si una cierta dependencia se compila en el archivo gradle devolviendo un boolean
  • Cómo definir y utilizar una constante en el script de compilación de Gradle (Android)?
  • Groovy, Scala, Clojure, etc scripts en Android
  • Groovy CompileStatic en Android desordena Groovy Truth
  • Agregue dependencia de tareas a la tarea de complemento existente en Gradle?
  • gradle: ejecuta código dependiendo del tipo de construcción (o variante)
  • Groovy Android y libgdx
  • Gradle Advertencia: falta declaración groovy devolución
  • ¿Cómo obtener tipos de parámetros de métodos en plantillas en vivo en Intellij IDEA?
  • Aplicar de forma condicional Plugin Gradle
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.