Gradle Build apenas um sabor

92

Alguém poderia me dizer se é possível construir apenas um dos meus diferentes sabores por meio da linha de comando?

No momento não vi como executar, por exemplo:

gradle buildDev 

quando Dev é um dos meus sabores diferentes. Na verdade, tenho que executar:

gradle build

E todos os sabores são construídos.

Eu gostaria de pular alguns sabores. é possível?

obrigado

Jose M Lechon
fonte
primeiro tente executar gradlesem parâmetros, depois leia a saída ... haverá uma dica para executar gradle tasks...
Selvin

Respostas:

156

Embora não haja uma versão específica do tipo da buildtarefa, existem versões específicas do tipo das tarefas assemblee install. assembleirá criar o APK; installirá instalá-lo em dispositivos / emuladores.

Por exemplo, no presente projecto de exemplo , que definem dois sabores de produtos ( chocolatee vanilla) e três tipos de construção total ( debug, release, e mezzanine).

gradle tasksShows de corrida , entre outros:

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
fonte
2
Então, quando eu quiser construir o APK do flavour, tenho que usar o assembleXXX. Legal. Obrigado.
Jose M Lechon
11
@Lechon: gradle assembleChocolateDebugresultará em build/apk/HelloProductFlavors-chocolate-debug-unaligned.apkser colocado em seu projeto. Porém, não posso descartar a possibilidade de que isso só funcione se o sabor for saboroso. :-)
CommonsWare
2
@Zainodis: Essa resposta tem mais de um ano e é possível que eles tenham adicionado uma tarefa que monta o tipo de compilação de depuração para todos os tipos de produto.
CommonsWare
1
@Zainodis: Deve desacelerar um pouco agora que o Gradle para Android 1.0 foi lançado.
CommonsWare
3
Se você tiver módulos, não se esqueça do prefixo do módulo:<module>:assemble<FlavorName>
Torge
28

Eu simplificaria a resposta dada por @CommonsWare porque ao passar pela resposta fiquei um pouco confuso.

Considere que estes são os sabores do produto

  • Dev
  • Pré-produção
  • Prod

Corre

tarefa gradlew

Isso listará todos os sabores de produto junto com seus tipos de compilação

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 disso, você pode escolher facilmente os sabores e irá gerar uma compilação com base nisso

gradlew assemblePREPROD

garoto andróide
fonte
10

Se o seu produto Sabor é chocolate, você pode fazer

./gradlew assembleChocolateRelease

ou

./gradlew assembleChocolateDebug
Eric Kim
fonte
1

Para adicionar às respostas acima, se você deseja construir um Android Bundle (AAB), você pode usar este

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