मैंने उपयोग किया है GOPATHलेकिन इस मौजूदा मुद्दे के लिए मैं इसका सामना कर रहा हूं इससे कोई मदद नहीं मिलती। मैं ऐसे पैकेज बनाना चाहता हूं जो किसी परियोजना के लिए विशिष्ट हों:
myproject/
├── binary1.go
├── binary2.go
├── package1.go
└── package2.go
मैंने कई तरीके आज़माए लेकिन मुझे package1.goकाम करने के तरीके में binary1.goया binary2.goऔर कैसे मिलता है ?
उदाहरण के लिए; मैं सक्षम होना चाहता हूं import "package1"और फिर चलाने में सक्षम हो सकता हूं और go build binary1.goत्रुटि के बिना सब कुछ ठीक काम करता है जिसे पैकेज पर नहीं पाया जा सकता है GOROOTया नहीं GOPATH। बड़े पैमाने पर परियोजनाओं के लिए मुझे इस तरह की कार्यक्षमता की आवश्यकता है; मैं कई अन्य पैकेजों को संदर्भित करना या उन्हें एक बड़ी फ़ाइल में रखना नहीं चाहता।
.goएक ही निर्देशिका की सभी फाइलें एक ही पैकेज का हिस्सा हैं, और आपको importएक ही पैकेज (यानी एक ही निर्देशिका) में फाइलों की जरूरत नहीं है । आपने GOPATH के बाहर काम करने का उल्लेख किया है, जो नए Go मॉड्यूल सिस्टम की क्षमताओं में से एक है। यह उत्तर मॉड्यूल संरचना को कवर करता है, स्थानीय पैकेजों को आयात करता है, एक मॉड्यूल के भीतर पैकेजों की व्यवस्था करता है, चाहे एकल रिपॉजिटरी आदि में कई मॉड्यूल हों या न हों
git/repo/to/my/projectपथ को निर्दिष्ट नहीं करते हैं तब तक आप मूल रूप से अपने स्थानीय उप-पैकेजों को आयात नहीं कर सकते हैं । मैं सिर्फ यही कारण नहीं देखता कि कोई भी इस व्यवहार को क्यों चाहेगा। क्या होगा यदि आप अपनी परियोजना को किसी अन्य स्थान (यानी डॉकर छवि) में स्थानांतरित करते हैं, आपको फिर से सभी रास्तों को बदलने की आवश्यकता है? मैं जवाब की तलाश कर रहा हूं कि यह इतना जटिल क्यों है।