Gradle Побудуйте лише аромат


93

Хтось може сказати мені, чи можливо створити лише один із моїх різних смаків за допомогою командного рядка?

На даний момент я не бачив способу виконання, наприклад:

gradle buildDev 

коли Dev - один із моїх різних смаків. Справді, я повинен виконати:

gradle build

І всі аромати побудовані.

Я хотів би пропустити деякі смаки. Це можливо?

Дякую


спочатку спробуйте запустити gradleбез параметрів, потім прочитайте вихідні дані ... буде підказка для запуску gradle tasks...
Селвін

Відповіді:


156

Незважаючи на те, що не існує специфічної для смаку версії buildзавдання, існують специфічні версії завдань assembleта install. assembleстворить файл .apk; installвстановить його на пристрої / емулятори.

Наприклад, в цьому прикладі проекту я визначаю два аромату продукту ( chocolateі vanilla) і три загальних типу збірки ( debug, releaseі mezzanine).

Запуск gradle tasksшоу, серед іншого:

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
Потім, коли я хочу побудувати APK із ароматом, я повинен використовувати assembleXXX. Класно. Дякую.
Jose M Lechon

11
@Lechon: gradle assembleChocolateDebugпризведе до build/apk/HelloProductFlavors-chocolate-debug-unaligned.apkрозміщення у вашому проекті. Хоча, я не можу виключити ймовірність того, що це спрацьовує, лише якщо смак смачний. :-)
CommonsWare

2
@Zainodis: цій відповіді вже більше року, і можливо, вони додали завдання, яке збирає тип побудови налагодження для всіх ароматів продукту.
CommonsWare

1
@Zainodis: Це мало би сповільнити те, що зараз Gradle для Android 1.0 надійшов.
CommonsWare

3
Якщо у вас є модулі, не забувайте про префікс модуля:<module>:assemble<FlavorName>
Torge

28

Я спростив би відповідь, дану @CommonsWare, тому що, переглядаючи відповідь, я був збентежений.

Поміркуйте, що це аромати продукту

  • Розробник
  • Preprod
  • Випуск

Біжи

завдання gradlew

Тут буде перераховано всі аромати продуктів разом із типами збірки

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.

З цього ви можете легко вибрати смаки і на основі цього згенеруєте збірку

gradlew збиратиPREPROD


11

Якщо ваш продукт Смак - це шоколад, ви можете це зробити

./gradlew assembleChocolateRelease

або

./gradlew assembleChocolateDebug

1

Щоб додати до наведених вище відповідей, якщо ви хочете створити Android Bundle (AAB), ви можете використовувати це

# build flavor 'flavorName' only
./gradlew bundleFlavorName
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.