प्रस्तावना: यह एंड्रॉइड ऐप में बिल्ड प्रकारों और उत्पाद स्वादों का उपयोग करने के बारे में कोई सवाल नहीं है। मैं शामिल बुनियादी अवधारणाओं को समझता हूं। यह प्रश्न यह समझने की कोशिश करने के बारे में अधिक है कि किस प्रकार की कॉन्फ़िगरेशन को बिल्ड प्रकार में निर्दिष्ट किया जाना चाहिए, जो कॉन्फ़िगरेशन को उत्पाद स्वाद में निर्दिष्ट किया जाना चाहिए, और क्या कोई भेद वास्तव में आवश्यक है।उत्पाद प्रकारों से अलग प्रकार के निर्माण क्यों अलग हैं?
इस सप्ताह, मैं एंड्रॉइड ऐप्स के लिए ग्रेडल कॉन्फ़िगरेशन के बारे में और अधिक सीख रहा हूं। मैंने शुरू में सोचा था कि मेरे पास बिल्ड प्रकार बनाम उत्पाद स्वादों पर एक अच्छा संभाल था, लेकिन जितना गहरा मुझे प्रलेखन में मिला, उतना ही मुझे एहसास हुआ कि दोनों के बीच भेद मुझे बिल्कुल स्पष्ट नहीं था।
चूंकि एक अच्छी तरह से परिभाषित पदानुक्रम है (इस अर्थ में कि निर्माण प्रकारों में निर्दिष्ट गुण उत्पाद स्वादों में निर्दिष्ट उन पर प्राथमिकता लेते हैं), मुझे समझ में नहीं आता कि निर्माण प्रकारों और उत्पाद स्वादों के बीच अंतर करने की आवश्यकता क्यों है बिलकुल। क्या उत्पाद स्वाद डीएसएल ऑब्जेक्ट में सभी गुणों और विधियों को मर्ज करना बेहतर नहीं होगा, और फिर केवल बिल्ड प्रकार को एक (डिफ़ॉल्ट) स्वाद आयाम के रूप में देखें?
कुछ ठोस उदाहरण है कि मेरे भ्रम की स्थिति पैदा:
signingConfig
संपत्ति दोनों प्रकार के और उत्पाद जायके ... लेकिनminifyEnabled
निर्माण (? और, मुझे लगता है,shrinkResources
) में स्थापित किया जा सकता केवल किया जा सकता है निर्माण प्रकार में कॉन्फ़िगर किया गया।applicationId
केवल उत्पाद के स्वादों में निर्दिष्ट किया जा सकता है ... औरapplicationIdSuffix
केवल निर्माण प्रकारों में निर्दिष्ट किया जा सकता है !?
वास्तविक प्रश्न (रों):
को देखते हुए उपरोक्त उदाहरण: वहाँ निर्माण प्रकार की भूमिकाओं उत्पाद जायके बनाम के बीच स्पष्ट अंतर है?
यदि हां, तो इसे समझने का सबसे अच्छा तरीका क्या है?
यदि नहीं, तो अंततः निर्माण प्रकारों और उत्पाद स्वादों को एक कॉन्फ़िगर करने योग्य डीएसएल ऑब्जेक्ट में विलय करने की योजना है?
"जो विन्यास निर्माण प्रकार है, जो विन्यास एक उत्पाद का स्वाद में निर्दिष्ट किया जाना चाहिए में निर्दिष्ट किया जाना चाहिए" - - बिल्ड प्रकार आपके विकास लाइफसील मॉडल (डीबग, "डॉगफूड", रिलीज इत्यादि)। उत्पाद स्वाद आपकी वितरण रणनीति का मॉडल करते हैं (Google आईएपी बनाम अमेज़ॅन आईएपी बनाम ब्लैकबेरी आईएपी, आदि)। ये स्वतंत्र अवधारणाएं हैं। बाकी के रूप में, मैं कल्पना करता हूं कि कार्यान्वयन से जुड़े तकनीकी कारण हैं जो कि डीएसएल की स्थापना कैसे करते हैं, और इसलिए मैं आश्चर्यचकित हूं कि विलय के लिए कोई योजना है या नहीं। – CommonsWare
@ कॉमन्सवेयर जो उच्च स्तर पर बहुत अधिक समझ में आता है। और हां, शायद प्रकार/स्वादों की अनुक्रमिक प्रसंस्करण प्रतिबंधित है कि कैसे और कब पूरे 'applicationId' को बदल सकता है, उदाहरण के लिए। – stkent