Gradle Membangun hanya sebuah rasa

94

Bisakah seseorang memberi tahu saya apakah mungkin membuat hanya satu dari rasa saya yang berbeda melalui baris perintah?

Saat ini saya belum melihat cara mengeksekusinya, misalnya:

gradle buildDev 

ketika Dev adalah salah satu rasa saya yang berbeda. Memang, saya harus mengeksekusi:

gradle build

Dan semua rasa dibangun.

Saya ingin melewatkan beberapa rasa. apa itu mungkin?

Terima kasih

Jose M Lechon
sumber
pertama-tama coba jalankan gradletanpa params, lalu baca output ... akan ada petunjuk untuk menjalankan gradle tasks...
Selvin

Jawaban:

156

Meskipun tidak ada versi khusus ragam dari buildtugas, ada versi khusus ragam dari tugas assembledan install. assembleakan membuat APK; installakan menginstalnya di perangkat / emulator.

Sebagai contoh, dalam proyek sampel ini , saya mendefinisikan dua rasa produk ( chocolatedan vanilla) dan tiga Total jenis membangun ( debug, release, dan mezzanine).

gradle tasksPertunjukan lari antara lain:

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
sumber
2
Kemudian, ketika saya ingin membangun APK flavour, saya harus menggunakan assembleXXX. Keren. Terima kasih.
Jose M Lechon
11
@ Lechon: gradle assembleChocolateDebugakan build/apk/HelloProductFlavors-chocolate-debug-unaligned.apkditempatkan di proyek Anda. Padahal, saya tidak bisa mengesampingkan kemungkinan bahwa ini hanya berfungsi jika rasanya enak. :-)
CommonsWare
2
@ Zainodis: Jawaban ini sudah lebih dari satu tahun, dan mungkin saja mereka telah menambahkan tugas yang menyusun tipe build debug untuk semua ragam produk.
CommonsWare
1
@Zainodis: Ini akan memperlambat beberapa sekarang setelah Gradle untuk Android 1.0 telah dikirimkan.
CommonsWare
3
Jika Anda memiliki modul, jangan lupa awalan modul:<module>:assemble<FlavorName>
Torge
28

Saya akan menyederhanakan jawaban yang diberikan oleh @CommonsWare karena melalui jawaban saya sedikit bingung.

Pertimbangkan ini adalah rasa produk

  • Dev
  • Preprod
  • Melecut

Lari

tugas gradlew

Ini akan mencantumkan semua jenis Produk bersama dengan jenis build yang ada

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.

Dari sini, Anda dapat dengan mudah memilih rasa dan akan menghasilkan build berdasarkan itu

gradlew assemblePREPROD

anak droid
sumber
12

Jika productFlavor Anda adalah cokelat, Anda bisa melakukannya

./gradlew assembleChocolateRelease

atau

./gradlew assembleChocolateDebug
Eric Kim
sumber
1

Untuk menambah jawaban di atas, jika Anda ingin membangun Android Bundle (AAB) maka Anda dapat menggunakan ini

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