Gradle Bauen Sie nur einen Geschmack

91

Könnte mir jemand sagen, ob es möglich ist, nur eine meiner verschiedenen Geschmacksrichtungen über die Befehlszeile zu erstellen?

Im Moment habe ich keine Möglichkeit zur Ausführung gesehen, zum Beispiel:

gradle buildDev 

wenn Dev einer meiner verschiedenen Geschmacksrichtungen ist. In der Tat muss ich ausführen:

gradle build

Und alle Aromen sind gebaut.

Ich möchte einige Geschmacksrichtungen überspringen. ist es möglich?

Vielen Dank

Jose M Lechon
quelle
Versuchen Sie zuerst, gradleohne Parameter zu laufen , und lesen Sie dann die Ausgabe ... es wird einen Hinweis geben, der ausgeführt werden soll gradle tasks...
Selvin

Antworten:

154

Während es keine geschmacksspezifische Version der buildAufgabe gibt, gibt es geschmacksspezifische Versionen der Aufgaben assembleund install. assembleerstellt die APK; installwird es auf Geräten / Emulatoren installieren.

Zum Beispiel in diesem Beispielprojekt definiere ich zwei Produkte Aromen ( chocolateund vanilla) und drei Gesamt Build - Typen ( debug, release, und mezzanine).

Laufshows gradle tasksunter anderem:

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
quelle
2
Wenn ich dann die APK des Geschmacks erstellen möchte, muss ich das assembleXXX verwenden. Cool. Vielen Dank.
Jose M Lechon
11
@Lechon: gradle assembleChocolateDebugwird build/apk/HelloProductFlavors-chocolate-debug-unaligned.apkin Ihr Projekt eingefügt . Ich kann jedoch nicht ausschließen, dass dies nur funktioniert, wenn der Geschmack lecker ist. :-)
CommonsWare
2
@Zainodis: Diese Antwort ist über ein Jahr alt und es ist möglich, dass sie eine Aufgabe hinzugefügt haben, die den Debug-Build-Typ für alle Produktvarianten zusammenstellt.
CommonsWare
1
@ Zainodis: Es sollte etwas langsamer werden, nachdem Gradle für Android 1.0 ausgeliefert wurde.
CommonsWare
3
Wenn Sie Module haben, vergessen Sie nicht das Modulpräfix:<module>:assemble<FlavorName>
Torge
28

Ich würde die Antwort von @CommonsWare vereinfachen, weil ich durch die Antwort ein wenig verwirrt war.

Bedenken Sie, dass dies die Produktaromen sind

  • Dev
  • Preprod
  • Prod

Lauf

gradlew Aufgabe

Dadurch werden alle Produktvarianten zusammen mit den Build-Typen aufgelistet

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.

Daraus können Sie leicht die Geschmacksrichtungen auswählen und daraus einen Build erstellen

gradlew montierenPREPROD

Droidenkind
quelle
10

Wenn Ihr Produktgeschmack Schokolade ist, können Sie tun

./gradlew assembleChocolateRelease

oder

./gradlew assembleChocolateDebug
Eric Kim
quelle
1

Wenn Sie ein Android-Bundle (AAB) erstellen möchten, können Sie dieses verwenden, um die obigen Antworten zu ergänzen

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