Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gradle: How to Build different flavours of different built types?

Could someone tell me if it's possible to build only one of my different flavors through the command-line?

At the moment I haven't seen the way to execute, for example:

gradle buildDev  

when Dev is one of my different flavors. Indeed, I have to execute:

gradle build 

And all flavors are build.

I'd like to skip some flavors. is it possible?

Thanks

like image 959
Jose M Lechon Avatar asked Jan 23 '14 11:01

Jose M Lechon


People also ask

Can we have 2 build Gradle?

Hello , can i create multiple build. gradle for one project? Yes. You can have multiple build files in one project.

How do I change a variant in build?

NOTE: By default, the Android Studio will generate "debug" and "release" Build Types for your project. So, to change a Build Type, all you need to do is just select your Build Type from the Build Variant and after the project sync, you are good to go.

What are build flavors?

Build variants are the result of Gradle using a specific set of rules to combine settings, code, and resources configured in your build types and product flavors. Although you do not configure build variants directly, you do configure the build types and product flavors that form them.


2 Answers

While there is no flavor-specific version of the build task, there are flavor-specific versions of the assemble and install tasks. assemble will create the APK; install will install it on devices/emulators.

For example, in this sample project, I define two product flavors (chocolate and vanilla) and three total build types (debug, release, and mezzanine).

Running gradle tasks shows, among others:

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 
like image 161
CommonsWare Avatar answered Sep 29 '22 04:09

CommonsWare


I would simplify the answer given by @CommonsWare because going through the answer i was litte confused.

Consider these are the product flavours

  • Dev
  • Preprod
  • Prod

Run

gradlew task

This will list out all Product flavours along with there build types

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. 

From this you can easily choose the flavours and will generate a build based on that

gradlew assemblePREPROD

like image 31
droid kid Avatar answered Sep 29 '22 06:09

droid kid