गो मॉड्यूल के संदर्भ में, निर्भरता ऐसे पैकेज हैं जो एक विशेष मॉड्यूल के लिए आवश्यक हैं। जबकि प्रत्यक्ष निर्भरताएँ स्पष्ट रूप से go.mod फ़ाइल के आवश्यक कथन में सूचीबद्ध होती हैं, अप्रत्यक्ष निर्भरताएँ स्वचालित रूप से जुड़ जाती हैं जब कोई प्रत्यक्ष निर्भरता उन पर निर्भर करती है।
इससे ऐसी स्थिति उत्पन्न हो सकती है जहाँ मॉड्यूल की go.mod फ़ाइल में शामिल है कई अप्रत्यक्ष निर्भरताएँ, भले ही वे सीधे मॉड्यूल द्वारा उपयोग नहीं की जाती हैं। यह भ्रमित करने वाला और प्रबंधन करने में कठिन हो सकता है, खासकर जब निर्भरता के कई संस्करण शामिल हों।
दुर्भाग्य से, go.mod फ़ाइलों में अप्रत्यक्ष निर्भरता से पूरी तरह बचना संभव नहीं है। गो मॉड्यूल का उपयोग करते समय, प्रत्यक्ष निर्भरता के लिए आवश्यक सभी निर्भरताएं स्वचालित रूप से अप्रत्यक्ष निर्भरता के रूप में जोड़ दी जाएंगी, जब तक कि अन्यथा निर्दिष्ट न हो।
प्रश्न में दिए गए उदाहरण को लें:
module prodenv go 1.13 require ( github.com/gocolly/colly v1.2.0 ... )
इस मामले में, github.com/gocolly/colly v1.2.0 में go.mod फ़ाइल नहीं है, इसलिए इसकी सभी निर्भरताएँ prodenv मॉड्यूल की go.mod फ़ाइल में अप्रत्यक्ष के रूप में सूचीबद्ध हैं।
अप्रत्यक्ष निर्भरता से बचने के लिए, उन निर्भरताओं का उपयोग करने की अनुशंसा की जाती है जिनमें go.mod फ़ाइलें हैं। यह सुनिश्चित करेगा कि केवल वे निर्भरताएँ जो सीधे मॉड्यूल द्वारा उपयोग की जाती हैं, go.mod फ़ाइल में सूचीबद्ध हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3