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

José M Lechon
la source
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
CommonsWare
la source
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

enfant droïde
la source
10

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

./gradlew assembleChocolateRelease

ou

./gradlew assembleChocolateDebug
Eric Kim
la source
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
EFreak
la source