2016-05-16 21 views
2

Mit ein paar Schwierigkeiten bekommen die gehen Vendor Experiment arbeiten mit 1.6.2 gehen auf osx.GO (Golang) Vendor Experiment versagt auf Mac OSX

Heres meine Verzeichnisstruktur:

/project 
    /application 
     main.go 
     other.go 
     /vendor 
      /github.com 
       /vendor_name 
        /package_name 

ich meine GOPATH zu /Users/me/project/application jedoch festgelegt haben, wenn ich versuche, eine der Go-Tools (zB Build) scheint es in application/src statt application/vendor suchen zu laufen, bekommen viele dieser:

main.go:15:2: cannot find package "github.com/facebookgo/grace/gracehttp" in any of: 
    /usr/local/Cellar/go/1.6.2/libexec/src/github.com/facebookgo/grace/gracehttp (from $GOROOT) 
    /Users/me/project/application/src/github.com/facebookgo/grace/gracehttp (from $GOPATH) 

wie Sie gehen env Ausgang Anbieter Experiment sehen kann, ist standardmäßig auf, wie es sie nur sein sollte, scheint nicht zu funktionieren:

GOARCH="amd64" 
GOBIN="" 
GOEXE="" 
GOHOSTARCH="amd64" 
GOHOSTOS="darwin" 
GOOS="darwin" 
GOPATH="/Users/me/project/application" 
GORACE="" 
GOROOT="/usr/local/Cellar/go/1.6.2/libexec" 
GOTOOLDIR="/usr/local/Cellar/go/1.6.2/libexec/pkg/tool/darwin_amd64" 
GO15VENDOREXPERIMENT="1" 
CC="clang" 
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common" 
CXX="clang++" 
CGO_ENABLED="1" 

Jetzt kann die Quelle der Funkiness ein Kater von früheren go-Installationen sein. Ich hatte verschiedene Versionen von Go im Laufe der Zeit installiert, einige über gvm (go version manager) und einige über Homebrew. Also habe ich gvm deinstalliert und die Versionen von go it installiert, auch nicht deinstalliert gehts mit homebrew und reinstalliert nur 1.6.2 mit homebrew.

go Version Ausgabe:

go version go1.6.2 darwin/amd64 

, die gehen:

/usr/local/bin/go 

Irgendwelche Ideen, was hier schief gegangen sein kann, oder bin ich vielleicht Missverständnis, wie vendoring funktionieren sollte?

P.S. Bitte elt mich, wenn Sie weitere Informationen benötigen, glücklich

Antwort

2

es in application/src

Ja der Suche zu sein scheint zu geben, gehen Sie in $GOPATH/src, sowohl für Ihre Quellen und Suche vendor Quellenordner.

Alles sollte in $GOPATH/src

Die vendor folder gemeint ist, nur im Verzeichnisbaum im Stammhaus von „vendor“ verwurzelt von Code importierbar zu sein.
Aber es ist Teil Ihrer Quellen, und als solche sollte unter $GOPATH/src sein.

+0

Danke, ich habe das funktioniert. Ich hatte mir einige Beispiele angeschaut, die darauf hindeuteten, dass Sie den Ordner/src löschen könnten. Es hat mit Ihrer Antwort geklickt, dass Sie src aus dem Lieferantenverzeichnis löschen können, aber das Lieferantenverzeichnis muss unter/src liegen. Ich hasse wirklich die Art und Weise, in Golving zu arbeiten, das ist eine kleine Verbesserung. Mein neues Setup ist es, home/me/projects zu meinem gopath zu machen, einen src-Ordner darunter zu haben und dann darunter alle meine Projekte mit ihren eigenen Vendor-Ordnern mit individuellen Abhängigkeiten zu behalten. Dies scheint zu funktionieren. – WebweaverD