Gradle Zbuduj tylko smak

94

Czy ktoś mógłby mi powiedzieć, czy można zbudować tylko jeden z moich różnych smaków za pomocą wiersza poleceń?

W tej chwili nie widziałem sposobu wykonania, na przykład:

gradle buildDev 

kiedy Dev jest jednym z moich różnych smaków. Rzeczywiście muszę wykonać:

gradle build

I wszystkie smaki są budowane.

Chciałbym pominąć niektóre smaki. Czy to możliwe?

Dzięki

Jose M. Lechon
źródło
najpierw spróbuj uruchomić gradlebez parametrów, potem odczytaj wyjście ... pojawi się wskazówka do uruchomienia gradle tasks...
Selvin

Odpowiedzi:

156

Chociaż nie ma wersji buildzadania specyficznej dla smaku, istnieją wersje assemblei installzadania specyficzne dla smaku . assembleutworzy APK; installzainstaluje go na urządzeniach / emulatorach.

Na przykład, w tym próbki projektu , zdefiniować dwie odmiany produktu ( chocolatei vanilla) i łącznie trzy rodzaje wykonania ( debug, releasei mezzanine).

gradle tasksPokazy biegowe m.in .:

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
źródło
2
Następnie, gdy chcę zbudować plik APK ze smakiem, muszę użyć pliku assembleXXX. Fajne. Dzięki.
Jose M Lechon
11
@Lechon: gradle assembleChocolateDebugspowoduje build/apk/HelloProductFlavors-chocolate-debug-unaligned.apkumieszczenie w Twoim projekcie. Chociaż nie mogę wykluczyć, że działa to tylko wtedy, gdy smak jest smaczny. :-)
CommonsWare
2
@Zainodis: Ta odpowiedź ma ponad rok i możliwe, że dodali zadanie, które zestawia typ kompilacji debugowania dla wszystkich smaków produktów.
CommonsWare
1
@Zainodis: Powinno to trochę spowolnić teraz, gdy pojawił się Gradle dla Androida 1.0.
CommonsWare
3
Jeśli masz moduły, nie zapomnij o prefiksie modułu:<module>:assemble<FlavorName>
Torge
28

Uprościłbym odpowiedź udzieloną przez @CommonsWare, ponieważ przeglądając odpowiedź, byłem trochę zdezorientowany.

Weź pod uwagę, że są to smaki produktu

  • Dev
  • Preprod
  • Szturchać

Biegać

zadanie gradlew

Spowoduje to wyświetlenie wszystkich smaków produktów wraz z typami kompilacji

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.

Z tego możesz łatwo wybrać smaki i na ich podstawie wygenerujesz kompilację

montaż gradlewPREPROD

droid dzieciak
źródło
12

Jeśli Twój produkt to czekolada, możesz to zrobić

./gradlew assembleChocolateRelease

lub

./gradlew assembleChocolateDebug
Eric Kim
źródło
1

Aby dodać do powyższych odpowiedzi, jeśli chcesz zbudować pakiet Androida (AAB), możesz tego użyć

# build flavor 'flavorName' only
./gradlew bundleFlavorName
EFreak
źródło