लाइब्रेरी प्रकाशन
डिफ़ॉल्ट रूप से एक पुस्तकालय केवल अपनी रिहाई संस्करण प्रकाशित करती है। यह संस्करण लाइब्रेरी का संदर्भ देने वाली सभी परियोजनाओं द्वारा उपयोग किया जाएगा, इससे कोई फर्क नहीं पड़ता कि वेरिएंट वे स्वयं बनाते हैं। यह की वजह से अस्थायी सीमा है जो हम हटाने की दिशा में काम कर रहे हैं।
आप जो संस्करण के साथ
android { defaultPublishConfig "debug" }
नोट इस प्रकाशन विन्यास नाम का संदर्भ देता है पूर्ण भिन्न नाम प्रकाशित होता है नियंत्रित कर सकते हैं। रिलीज और डिबग केवल तभी लागू होते हैं जब स्वाद नहीं होते हैं। आप जबकि जायके का उपयोग कर डिफ़ॉल्ट प्रकाशित संस्करण को बदलना चाहते हैं, तो आप लिखते थे:
android {defaultPublishConfig "flavor1Debug" }
यह भी एक पुस्तकालय के सभी वेरिएंट प्रकाशित करने के लिए संभव है। हम सामान्य प्रोजेक्ट-टू-प्रोजेक्ट निर्भरता (जैसा ऊपर दिखाया गया है) का उपयोग करते समय इसे अनुमति देने की योजना बना रहे हैं, लेकिन ग्रैडल में सीमाओं के लिए के कारण यह संभव नहीं है (हम उनको ठीक करने की दिशा में भी काम कर रहे हैं)। सभी प्रकारों का प्रकाशन डिफ़ॉल्ट रूप से सक्षम नहीं है। उन्हें सक्षम करने के लिए:
android {publishNonDefault true }
यह एहसास है कि कई वेरिएंट को प्रकाशित करने का मतलब है प्रकाशन कई आर फ़ाइलों महत्वपूर्ण है कई वेरिएंट वाली एकल आर के बजाय। प्रत्येक आयर पैकेजिंग में एक एकल संस्करण होता है। एक संस्करण का प्रकाशन करना इस एआर को आउटपुट ग्रैडल प्रोजेक्ट के आर्टिफैक्ट के रूप में उपलब्ध करा रहा है। इसका उपयोग तब किया जा सकता है जब एक मैवेन रिपोजिटरी में प्रकाशित हो रहा है, या जब कोई अन्य प्रोजेक्ट लाइब्रेरी प्रोजेक्ट पर निर्भरता बनाता है।।
compile project(':libraries:lib2')
एक और प्रकाशित विरूपण साक्ष्य पर निर्भरता बनाने के लिए, आप करने की जरूरत है जो एक का उपयोग करने के लिए निर्दिष्ट:
Gradle डिफ़ॉल्ट "विरूपण साक्ष्य की एक अवधारणा है यह एक है कि जब लेखन में प्रयोग किया जाता है:
dependencies {
flavor1Compile project(path: ':lib1', configuration: 'flavor1Release')
flavor2Compile project(path: ':lib1', configuration: 'flavor2Release')
}
महत्वपूर्ण:। ध्यान दें कि प्रकाशित विन्यास एक पूर्ण संस्करण है, निर्माण प्रकार सहित है, और इस तरह के रूप में संदर्भित किए जाने की आवश्यकता Imp ऑर्टेंट: गैर डिफ़ॉल्ट के प्रकाशन को सक्षम करते समय, मेवेन प्रकाशन प्लगइन इन अतिरिक्त रूपों को अतिरिक्त पैकेज (वर्गीकृत के साथ) के रूप में प्रकाशित करेगा। इसका मतलब यह है कि यह वास्तव में एक मैवेन रिपोजिटरी को प्रकाशित करने के साथ संगत नहीं है। आपको या तो एक संग्रह में एक एकल संस्करण प्रकाशित करना चाहिए या इंटर-प्रोजेक्ट निर्भरताओं के लिए सभी कॉन्फ़िगरेशन प्रकाशन सक्षम करना चाहिए।
यह काम नहीं करता है। – dragostis
क्या यह उदाहरण आपके लिए 0.2.1' पर काम करता है? निश्चित रूप से उचित वाक्यविन्यास के साथ। लाइब्रेरी में 'android.productFlavors' और मुख्य परियोजना में 'संकलित परियोजना (': mylibrary ')'। – dragostis
वाक्यविन्यास सही है और यह एक अनुप्रयोग मॉड्यूल के साथ ठीक काम करता है। मुझे नहीं पता कि यह पुस्तकालय के साथ कैसे काम कर सकता है। मेरी राय में आपको मुख्य मॉड्यूल में स्वाद ले जाना चाहिए (मैंने कभी लाइब्रेरी के अंदर स्वाद नहीं देखा है) –