2015-10-09 11 views
6

Ich versuche, mein Projekt in go lang mit Version 1.5 mit GO15VENDOREXPERIMENT="1" zu erstellen, um sicherzustellen, dass ich lokal nach den Anbietern suche.Golang 1.5 Anbieter - Paket kann nicht gefunden werden

Meine Struktur ist:

apps_api 
    main.go 
    build.sh 
    src 
     controllers 
     models 
     views 
    vendor 
     github.com 
     golang.org 
     ..... 

build.sh enthält

export GO15VENDOREXPERIMENT="1" 
export GOPATH=`pwd` 
go build . 

Controller-Beispieldatei

import (
    "models" 
    "views" 

    "github.com/gin-gonic/gin" 
) 

aber ich bekomme viele Fehler sagen Paket nicht siehe unten für exmaple gefunden

src/controllers/app-versions.go:10:2: cannot find package "github.com/asaskevich/govalidator" in any of: 
    /Users/ereeve/.gvm/gos/go1.5/src/github.com/asaskevich/govalidator (from $GOROOT) 
    /Users/ereeve/Documents/gocode/src/apps_api/src/github.com/asaskevich/govalidator (from $GOPATH) 

src/controllers/index.go:4:2: cannot find package "github.com/chnlr/baseurl" in any of: 
    /Users/ereeve/.gvm/gos/go1.5/src/github.com/chnlr/baseurl (from $GOROOT) 
    /Users/ereeve/Documents/gocode/src/apps_api/src/github.com/chnlr/baseurl (from $GOPATH) 

Wenn ich diese Zeilen in meine build.sh-Datei hinzufüge, wird es erstellt, aber ich möchte nicht go get bekommen, weil ich 1.5 mit den Anbietern lokal in meinem Projekt verwende, um Abhängigkeiten zu vermeiden.

# go get github.com/gin-gonic/gin 
# go get github.com/go-sql-driver/mysql 
# go get github.com/rif/cache2go 
.... 

Irgendwelche Ideen, was ich falsch mache?

+0

haben Sie versuchen, go github.com/asaskevich/govalidator bekommen? – pregmatch

+0

Ich verwende go 1.5, also habe ich die Datei innerhalb von vendor/github.com um zu vermeiden, dass ich verschiedene Versionen in verschiedenen Umgebungen bekomme –

Antwort

8

IIRC, GO15VENDOREXPERIMENT funktioniert nur, wenn das Paket, das Sie bauen sind innerhalb $GOPATH/src ist, so

Einstellung
export GOPATH=`pwd` 

in Ihrem build.sh macht es scheitern. Wenn Sie Ihren apps_api nach innen setzen ~/fakegopath/src/ sagen und laufen

env GOPATH="${HOME}/fakegopath/src/" GO15VENDOREXPERIMENT="1" go build . 

sollte es funktionieren.

+0

Danke, aber ich bekomme das: go: GOPATH-Eintrag kann nicht mit shell metacaracter '~' beginnen: "~/Documents/gocode/src /" - Muss ich den GOPATH explizit ausfüllen? –

+2

Ersetzen Sie '~' durch '$ {HOME}'. –

+0

Ich bekomme jetzt ($ GOPATH nicht gesetzt)? –

Verwandte Themen