Gradle Construisez seulement une saveur


92

Quelqu'un pourrait-il me dire s'il est possible de créer une seule de mes différentes saveurs via la ligne de commande?

Pour le moment, je n'ai pas vu comment exécuter, par exemple:

gradle buildDev 

quand Dev est l'une de mes différentes saveurs. En effet, je dois exécuter:

gradle build

Et toutes les saveurs sont construites.

Je voudrais sauter quelques saveurs. c'est possible?

Merci


essayez d'abord de fonctionner gradlesans paramètres, puis lisez la sortie ... il y aura un indice pour exécuter gradle tasks...
— Selvin

Réponses:


156

Bien qu'il n'y ait pas de version spécifique à la saveur de la buildtâche, il existe des versions spécifiques à la saveur des tâches assembleet install. assemblecréera l'APK; installva l'installer sur les appareils / émulateurs.

Par exemple, dans ce projet exemple , je définis deux saveurs de produits ( chocolateet vanilla) et trois types de construction ( au total debug, releaseet mezzanine).

Running gradle tasksshows, entre autres:

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
Ensuite, lorsque je veux créer l'APK de la saveur, je dois utiliser l'assembleXXX. Cool. Merci.
— Jose M Lechon

11
@Lechon: gradle assembleChocolateDebugaura pour conséquence d' build/apk/HelloProductFlavors-chocolate-debug-unaligned.apkêtre placé dans votre projet. Cependant, je ne peux pas exclure la possibilité que cela ne fonctionne que si la saveur est savoureuse. :-)
— CommonsWare

2
@Zainodis: Cette réponse date de plus d'un an, et il est possible qu'ils aient ajouté une tâche qui assemble le type de build de débogage pour toutes les versions de produit.
— CommonsWare

1
@Zainodis: Cela devrait ralentir un peu maintenant que Gradle pour Android 1.0 est disponible.
— CommonsWare

3
Si vous avez des modules, n'oubliez pas le préfixe du module:<module>:assemble<FlavorName>
— Torge

28

Je simplifierais la réponse donnée par @CommonsWare car en parcourant la réponse, j'étais un peu confus.

Considérez que ce sont les saveurs du produit

  • Dev
  • Preprod
  • Prod

Courir

tâche gradlew

Cela listera toutes les saveurs de produits ainsi que leurs types de construction

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.

À partir de là, vous pouvez facilement choisir les saveurs et générer une construction basée sur cela

gradlew assemblerPREPROD


10

Si votre produit a une saveur de chocolat, vous pouvez faire

./gradlew assembleChocolateRelease

ou

./gradlew assembleChocolateDebug

1

Pour ajouter aux réponses ci-dessus, si vous souhaitez créer un bundle Android (AAB), vous pouvez utiliser ceci

# build flavor 'flavorName' only
./gradlew bundleFlavorName
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.