Google की ग्रैडल प्लगिन ने कई प्रोजेक्ट बनाने के लिए आपकी ग्रेडल फ़ाइलों को कॉन्फ़िगर करने के लिए अनुशंसित तरीके की कुछ कमियां हैं। यदि आपके पास एक लाइब्रेरी प्रोजेक्ट के आधार पर कई प्रोजेक्ट्स हैं, तो यह पोस्ट Google की अनुशंसित कॉन्फ़िगरेशन, इसकी कमियों की संक्षिप्त रूप से व्याख्या करती है, और आपकी ग्रेड फ़ाइलों को कॉन्फ़िगर करने के लिए एक अलग तरीके की अनुशंसा करती है। एंड्रॉइड स्टूडियो में मल्टी-प्रोजेक्ट सेटअप का समर्थन करें:
Android स्टूडियो के लिए एक वैकल्पिक मल्टीप्रोजेक्ट सेटअप
एक अलग तरीका:
यह पता चला है कि एंड्रॉइड स्टूडियो में कई परियोजनाओं का प्रबंधन करने का एक बेहतर तरीका है। चाल अपने पुस्तकालयों के लिए अलग-अलग एंड्रॉइड स्टूडियो प्रोजेक्ट बनाने के लिए है और यह बताने के लिए कि लाइब्रेरी का मॉड्यूल आपके ऐप पर निर्भर करता है, लाइब्रेरी के प्रोजेक्ट डायरेक्टरी में स्थित है। यदि आप इस पद्धति का उपयोग करना चाहते हैं जो मैंने ऊपर वर्णित परियोजना संरचना के साथ किया है, तो आप निम्न कार्य करेंगे:
- StickyListHeaders लाइब्रेरी के लिए एक एंड्रॉइड स्टूडियो प्रोजेक्ट बनाएं
- App2 के लिए एक Android स्टूडियो प्रोजेक्ट बनाएं
- App1 के लिए एक Android स्टूडियो प्रोजेक्ट बनाएं
- StickyListHeaders प्रोजेक्ट में मॉड्यूल बनाने के लिए App1 और App2 कॉन्फ़िगर करें।
4 वां चरण कठिन हिस्सा है, इसलिए यह एकमात्र ऐसा कदम है जिसका मैं विस्तार से वर्णन करूंगा। आप मॉड्यूल को संदर्भित कर सकते हैं जो आपकी सेटिंग में एक प्रोजेक्ट स्टेटमेंट जोड़कर आपकी परियोजना की निर्देशिका के लिए बाहरी हैं। ProjectDescriptor ऑब्जेक्ट पर प्रोजेक्टडायर संपत्ति सेट करके और उस प्रोजेक्ट स्टेटमेंट द्वारा लौटाए गए हैं:
कोड एक में डालना है settings.gradle
:
include ':library1'
project(':library1').projectDir = new File('../StickyListHeader/library1')
यदि आपने इसे सही तरीके से किया है, तो आप देखेंगे कि आपके प्रोजेक्ट द्वारा संदर्भित मॉड्यूल प्रोजेक्ट नेविगेटर में दिखाई देंगे, भले ही वे मॉड्यूल प्रोजेक्ट डायरेक्टरी के लिए बाहरी हों:
इससे आप लाइब्रेरी कोड और ऐप कोड पर एक साथ काम कर सकते हैं। संस्करण नियंत्रण एकीकरण भी ठीक काम करता है जब आप बाह्य उपकरणों को इस तरह से संदर्भित करते हैं। आप अपने संशोधनों को लाइब्रेरी कोड के लिए प्रतिबद्ध और धक्का दे सकते हैं जैसे आप कर सकते हैं और संशोधनों को अपने ऐप कोड में धक्का दे सकते हैं।
कई परियोजनाओं को स्थापित करने का यह तरीका उन कठिनाइयों से बचता है जो Google के अनुशंसित कॉन्फ़िगरेशन को प्लेग करते हैं। क्योंकि हम एक ऐसे मॉड्यूल का संदर्भ दे रहे हैं जो प्रोजेक्ट डायरेक्टरी के बाहर है, हमें हर ऐप के लिए लाइब्रेरी मॉड्यूल की अतिरिक्त प्रतियां बनाने की ज़रूरत नहीं है जो इस पर निर्भर करता है और हम अपने पुस्तकालयों को किसी भी प्रकार के गिट सबमॉडल बकवास के बिना संस्करण कर सकते हैं।
दुर्भाग्य से, कई परियोजनाओं को स्थापित करने का यह दूसरा तरीका बहुत मुश्किल है। जाहिर है, इसका कुछ ऐसा नहीं है जिसे आप Google के मार्गदर्शक को देखकर समझेंगे और इस बिंदु पर, एंड्रॉइड स्टूडियो के यूआई का उपयोग करके अपनी परियोजनाओं को इस तरह से कॉन्फ़िगर करने का कोई तरीका नहीं है।