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


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

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


12

Si tu producto sabor es chocolate puedes hacerlo

./gradlew assembleChocolateRelease

o

./gradlew assembleChocolateDebug

1

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

# build flavor 'flavorName' only
./gradlew bundleFlavorName
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.