Gradleはフレーバーのみを作成します


92

コマンドラインから私の異なるフレーバーの1つだけを作成することが可能かどうか誰かが教えてもらえますか?

現在のところ、実行する方法はわかりません。たとえば、

gradle buildDev 

Devが私の異なるフレーバーの1つであるとき。確かに、私は実行する必要があります:

gradle build

そして、すべてのフレーバーが構築されます。

一部のフレーバーはスキップします。出来ますか?

ありがとう


最初にgradleparamsなしで実行してから、出力を読み取ります...実行するヒントがありますgradle tasks...
セルヴィン

回答:


156

buildタスクにはフレーバー固有のバージョンはありませんが、assembleおよびinstallタスクにはフレーバー固有のバージョンがあります。assembleAPKを作成します。installデバイス/エミュレータにインストールします。

たとえば、中にこのサンプルプロジェクトで、私は2つの製品のフレーバー(定義chocolatevanilla()と合計3つのビルドの種類をdebugreleasemezzanine)。

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 2014年

11
@Lechonは:gradle assembleChocolateDebugにつながるbuild/apk/HelloProductFlavors-chocolate-debug-unaligned.apkプロジェクトに配置されています。しかし、味がおいしい場合にのみ機能する可能性を排除することはできません。:-)
CommonsWare 2014年

2
@Zainodis:この回答は1年以上前のものであり、すべての製品フレーバーのデバッグビルドタイプをアセンブルするタスクを追加した可能性があります。
CommonsWare、2015年

1
@Zainodis:Android 1.0向けGradleが出荷されたため、一部の速度が低下するはずです。
CommonsWare、2015年

3
モジュールがある場合は、モジュールの接頭辞を忘れないでください:<module>:assemble<FlavorName>
Torge

28

@CommonsWareからの回答を簡略化します。回答が少し混乱したからです。

これらは製品のフレーバーであると考えてください

  • Dev
  • プリプロド
  • 製品

走る

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 AssemblePREPROD


10

あなたの製品フレーバーがチョコレートなら、あなたはできる

./gradlew assembleChocolateRelease

または

./gradlew assembleChocolateDebug

1

上記の回答に追加して、Androidバンドル(AAB)を構築する場合は、これを使用できます

# build flavor 'flavorName' only
./gradlew bundleFlavorName
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.