मैंने उपयोग किया है 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
पथ को निर्दिष्ट नहीं करते हैं तब तक आप मूल रूप से अपने स्थानीय उप-पैकेजों को आयात नहीं कर सकते हैं । मैं सिर्फ यही कारण नहीं देखता कि कोई भी इस व्यवहार को क्यों चाहेगा। क्या होगा यदि आप अपनी परियोजना को किसी अन्य स्थान (यानी डॉकर छवि) में स्थानांतरित करते हैं, आपको फिर से सभी रास्तों को बदलने की आवश्यकता है? मैं जवाब की तलाश कर रहा हूं कि यह इतना जटिल क्यों है।