ग्रैडल केवल एक स्वाद बनाएँ


93

क्या कोई मुझे बता सकता है कि क्या कमांड-लाइन के माध्यम से मेरे केवल एक अलग स्वाद का निर्माण संभव है?

फिलहाल मैंने निष्पादन का तरीका नहीं देखा है, उदाहरण के लिए:

gradle buildDev 

जब देव मेरे अलग स्वादों में से एक है। वास्तव में, मुझे अमल करना होगा:

gradle build

और सभी स्वादों का निर्माण होता है।

मैं कुछ स्वादों को छोड़ना चाहता हूं। क्या यह संभव है?

धन्यवाद


पहले gradleबिना परमेस के चलने की कोशिश करें , फिर आउटपुट पढ़ें ... चलाने का संकेत होगा gradle tasks...
सेल्विन

जवाबों:


156

जहाँ buildकार्य का कोई स्वाद-विशिष्ट संस्करण नहीं है , वहाँ assembleऔर installकार्यों के स्वाद-विशिष्ट संस्करण हैं। assembleएपीके बनाएंगे; 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
फिर, जब मैं flavour की एपीके का निर्माण करना चाहता हूं तो मुझे assembleXXX का उपयोग करना होगा। ठंडा। धन्यवाद।
जोस एम लीचोन

11
@ लेचन: gradle assembleChocolateDebugपरिणाम build/apk/HelloProductFlavors-chocolate-debug-unaligned.apkआपके प्रोजेक्ट में रखा जाएगा । हालांकि, मैं इस संभावना से इनकार नहीं कर सकता कि यह केवल तभी काम करता है जब स्वाद स्वादिष्ट हो। :-)
कॉमन्सवेयर

2
@ ज़ैनोडिस: यह उत्तर एक वर्ष से अधिक पुराना है, और यह संभव है कि उन्होंने एक ऐसा कार्य जोड़ा है जो सभी उत्पाद स्वादों के लिए डिबग बिल्ड प्रकार को इकट्ठा करता है।
कॉमन्सवेयर

1
@Zainodis: यह अब कुछ धीमा कर देना चाहिए जिसे एंड्रॉइड 1.0 के लिए ग्रैडल ने भेज दिया है।
कॉमन्सवेयर

3
यदि आपके पास मॉड्यूल हैं, तो मॉड्यूल उपसर्ग को न भूलें:<module>:assemble<FlavorName>
टॉर्ज

28

मैं @CommonsWare द्वारा दिए गए उत्तर को सरल कर दूंगा क्योंकि उत्तर से गुज़रते हुए मुझे भ्रम हो गया था।

गौर करें कि ये उत्पाद फ्लेवर हैं

  • देव
  • Preprod
  • ठेस

Daud

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 बंडल (AAB) बनाना चाहते हैं तो आप इसका उपयोग कर सकते हैं

# build flavor 'flavorName' only
./gradlew bundleFlavorName
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.