Gradle Build solo un sabor

94

¿Alguien podría decirme si es posible construir solo uno de mis diferentes sabores a través de la línea de comandos?

Por el momento no he visto la forma de ejecutar, por ejemplo:

gradle buildDev 

cuando Dev es uno de mis diferentes sabores. De hecho, tengo que ejecutar:

gradle build

Y todos los sabores se construyen.

Me gustaría omitir algunos sabores. ¿Es posible?

Gracias

José M Lechón
fuente
Primero intente ejecutar gradlesin parámetros, luego lea la salida ... habrá una pista para ejecutar gradle tasks...
Selvin

Respuestas:

156

Si bien no existe una versión específica de la buildtarea, hay versiones específicas de la tarea assembley install. assemblecreará el APK; installlo instalará en dispositivos / emuladores.

Por ejemplo, en este proyecto de ejemplo , defino dos sabores de productos ( chocolatey vanilla) y tres tipos de construcción totales ( debug, releasey mezzanine).

Ejecución de gradle tasksespectáculos, entre otros:

Build tasks
-----------
assemble - Assembles all variants of all applications and secondary packages.
assembleChocolate - Assembles all builds for flavor Chocolate
assembleChocolateDebug - Assembles the Debug build for flavor Chocolate
assembleChocolateDebugTest - Assembles the Test build for the ChocolateDebug build
assembleChocolateMezzanine - Assembles the Mezzanine build for flavor Chocolate
assembleChocolateRelease - Assembles the Release build for flavor Chocolate
assembleDebug - Assembles all Debug builds
assembleMezzanine - Assembles all Mezzanine builds
assembleRelease - Assembles all Release builds
assembleTest - Assembles all the Test applications
assembleVanilla - Assembles all builds for flavor Vanilla
assembleVanillaDebug - Assembles the Debug build for flavor Vanilla
assembleVanillaDebugTest - Assembles the Test build for the VanillaDebug build
assembleVanillaMezzanine - Assembles the Mezzanine build for flavor Vanilla
assembleVanillaRelease - Assembles the Release build for flavor Vanilla

Install tasks
-------------
installChocolateDebug - Installs the Debug build for flavor Chocolate
installChocolateDebugTest - Installs the Test build for the ChocolateDebug build
installChocolateMezzanine - Installs the Mezzanine build for flavor Chocolate
installChocolateRelease - Installs the Release build for flavor Chocolate
installVanillaDebug - Installs the Debug build for flavor Vanilla
installVanillaDebugTest - Installs the Test build for the VanillaDebug build
installVanillaMezzanine - Installs the Mezzanine build for flavor Vanilla
installVanillaRelease - Installs the Release build for flavor Vanilla
uninstallAll - Uninstall all applications.
uninstallChocolateDebug - Uninstalls the Debug build for flavor Chocolate
uninstallChocolateDebugTest - Uninstalls the Test build for the ChocolateDebug build
uninstallChocolateMezzanine - Uninstalls the Mezzanine build for flavor Chocolate
uninstallChocolateRelease - Uninstalls the Release build for flavor Chocolate
uninstallVanillaDebug - Uninstalls the Debug build for flavor Vanilla
uninstallVanillaDebugTest - Uninstalls the Test build for the VanillaDebug build
uninstallVanillaMezzanine - Uninstalls the Mezzanine build for flavor Vanilla
uninstallVanillaRelease - Uninstalls the Release build for flavor Vanilla
CommonsWare
fuente
2
Luego, cuando quiero construir el APK de Flavour, tengo que usar ensamblarXXX. Frio. Gracias.
Jose M Lechon
11
@Lechon: gradle assembleChocolateDebugresultará en build/apk/HelloProductFlavors-chocolate-debug-unaligned.apkser colocado en su proyecto. Sin embargo, no puedo descartar la posibilidad de que esto solo funcione si el sabor es sabroso. :-)
CommonsWare
2
@Zainodis: Esta respuesta tiene más de un año y es posible que hayan agregado una tarea que ensambla el tipo de compilación de depuración para todos los tipos de productos.
CommonsWare
1
@Zainodis: Debería ralentizarse un poco ahora que se ha enviado Gradle para Android 1.0.
CommonsWare
3
Si tiene módulos, no olvide el prefijo del módulo:<module>:assemble<FlavorName>
Torge
28

Simplificaría la respuesta dada por @CommonsWare porque al revisar la respuesta estaba un poco confundido.

Considere que estos son los sabores del producto

  • Dev
  • Preprod
  • Pinchar

correr

tarea de gradlew

Esto enumerará todos los tipos de productos junto con los tipos de compilación

assemble - Assembles all variants of all applications and secondary packages.
assembleAndroidTest - Assembles all the Test applications.
assembleDebug - Assembles all Debug builds.
assembleDEV - Assembles all DEV builds.
assemblePREPROD - Assembles all PREPROD builds.
assemblePROD - Assembles all PROD builds.
assembleRelease - Assembles all Release builds.

A partir de esto, puede elegir fácilmente los sabores y generará una compilación basada en eso

gradlew ensamblar

niño droide
fuente
12

Si tu producto sabor es chocolate puedes hacerlo

./gradlew assembleChocolateRelease

o

./gradlew assembleChocolateDebug
Eric Kim
fuente
1

Para agregar a las respuestas anteriores, si desea crear un paquete de Android (AAB), puede usar esto

# build flavor 'flavorName' only
./gradlew bundleFlavorName
EFreak
fuente