2016-12-25 10 views
5

के साथ उपयोग नहीं किया गया है मै मैकोज़ सिएरा में go-1.7 का उपयोग कर रहा हूं।विक्रेता फ़ोल्डर 'go build'

मेरे परियोजना मेरी $ GOPATH/src फ़ोल्डर के अंदर है और उसके सभी निर्भरता के साथ अंदर एक विक्रेता फ़ोल्डर है।

और मैं अपने कोड के अंदर इस तरह निर्भरता उपयोग कर रहा हूँ: अगर मैं चलाने

import (
"github.com/google/go-github/github" 
) 
अब

go build मैं संदेश है कि मेरे सभी निर्भरता का उपयोग मैं $ GOROOT और $ GOPATH अंदर नहीं पाया जा सका मिल अन्य और जोड़ने मेरी कोड के लिए "विक्रेता" पर काम कर रहा है:

import (
"vendor/github.com/google/go-github/github" 
) 

लेकिन जहाँ तक मैं समझ गया यह पहली बार कोड कतरना में पसंद करने के लिए करने के लिए संभव होना चाहिए।

आह FYI करें वहाँ कोई सिमलिंक आदि हैं

+1

क्या आपका कोड सीधे $ GOPATH/src में है? इससे भी समस्या है। यहां तक ​​कि विक्रेता निर्देशिका के साथ भी आपका कोड $ GOPATH (उदाहरण के लिए $ GOPATH/src/foo) – nussjustin

+0

के अंदर एक उपफोल्डर ($ GOPATH/src/project) – chrisWhyTea

+1

'बिल्ड बिल्ड' के अंदर अपने स्वयं के उपनिर्देशिका में होना चाहिए, पथों को सूचीबद्ध करना चाहिए खोजा गया। उनमें से एक पथ के बाद '(विक्रेता पेड़) होना चाहिए। आपके मामले में इसे '$ GOPATH/src/project/विक्रेता/github.com/google/go-github/github' सूचीबद्ध करना चाहिए। यदि नहीं, तो आप वेंडर निर्देशिका को गो टूल द्वारा पहचाना नहीं जाता है। – nussjustin

उत्तर

2

ठीक समस्या दिखाई दी:

मेरे MacOS फाइल सिस्टम केस संवेदी है लेकिन ऐसा लगता है जाने उपकरण नहीं कर सकते कि संभाल ... मेरी $ GOPATH तय की और अब ऐसा लगता है कि यह होना चाहिए काम करता है ..

+0

को ठीक करने की कोशिश कर रहा हूं, क्या आप समस्या और फिक्स को विस्तार से विस्तार से समझा सकते हैं? यह अन्य लोगों के लिए सहायक हो सकता है। – chmike

+1

ठीक है, मैंने बस अपनी शेल कॉन्फ़िगरेशन फ़ाइल के अंदर $ GOPATH को बदल दिया है ... इसलिए GOPATH =/प्रोजेक्ट्स/निर्यात के बजाय मैंने इसे GOPATH =/प्रोजेक्ट्स/निर्यात करने के लिए बदल दिया क्योंकि यह अकल्पनीय फ़ोल्डर नाम था .. – chrisWhyTea

0

आप अपने टर्मिनल में echo $GOPATH इस्तेमाल कर सकते हैं मेरे मामले में golang का अपना रास्ता देखने के लिए /home/gujarat/golang है। यह src पथ के बिना डिफ़ॉल्ट पथ है।

तो यहां से आपके सभी संकुल और निर्भरता $GOPATH में हैं। उदाहरण के लिए यहां कुछ संकुल हैं जिन्हें मैंने अपनी परियोजना में उपयोग किया था।

"fmt" 
"github.com/myproject/lol/src/config" // notice the first github.com 
"gopkg.in/redis.v4" // notice the gopkg.in 
"log" 

ऊपर पैकेज से आप सभी फ़ोल्डर और अपने src फ़ोल्डर में कॉपी किया निर्भरता होना आवश्यक है। जैसे github.com और gopkg.in ये वे फ़ोल्डर हैं जो src रूट में मौजूद होना चाहिए।

और यदि आप अपना "github.com/google/go-github/github" आयात नहीं कर सकते हैं तो इसका मतलब है कि आपके आपके src के अंदर इस फ़ोल्डर में नहीं है। लेकिन आपके vendor में है। आशा है कि यह मदद करता है

0

मुझे यह त्रुटि मिली और थोड़ी देर के लिए संघर्ष किया; मैं 1.8.3 पर जाने के लिए अद्यतन करता हूं और ग्लाइड संस्करण 0.12.3 का उपयोग कर रहा था; और मेरा GOPATH $ PWD के रूप में सेट किया गया था और ग्लाइड ./vendor फ़ोल्डर में सब कुछ इंस्टॉल कर रहा था;

अंततः त्रुटि मिली; GOPATH के तहत एक src फ़ोल्डर होना चाहिए और आपके सभी कार्यक्षेत्र इस src फ़ोल्डर के अंतर्गत होना चाहिए

यह दस्तावेज़ों में होना चाहिए, और देव मशीन में मैंने इसे उचित सेट किया है; लेकिन जेनकींस में

संबंधित मुद्दे