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() } } 
  • Eclipse utiliza la variable PATH antigua para ejecutar el proceso de línea de comandos en la tarea Gradle?
  • ¿Cómo obtener tipos de parámetros de métodos en plantillas en vivo en Intellij IDEA?
  • Agregue dependencia de tareas a la tarea de complemento existente en Gradle?
  • Grails / Gradle prueba falla en CI no localmente
  • Gradle buildType / productFlavor utilizando inesperado buildConfigField
  • Cómo definir y utilizar una constante en el script de compilación de Gradle (Android)?
  • Prueba de una biblioteca de Android con Robolectric
  • Android Gradle Lee el nombre de la aplicación de strings.xml
  • Sabores de productos dependencia Android de Gradle
  • Gradle define el valor de la ruta absoluta para un archivo de almacén de claves
  • Cómo configurar Android Studio proyecto desde cero que me permite utilizar groovy
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.