2015-10-09 17 views
6

Cercando di creare il mio progetto in go lang utilizzando la versione 1.5 con GO15VENDOREXPERIMENT="1" attivato per garantire che cerco localmente i fornitori.Golang 1.5 - Impossibile trovare il pacchetto

La mia struttura è:

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

build.sh contiene

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

esempio di file di controllo

import (
    "models" 
    "views" 

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

ma ho un sacco di errori dicendo pacchetto non trovato vedere sotto per exmaple

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) 

Se aggiungo queste righe nel mio file build.sh, verrà creato, ma non voglio utilizzarlo, andare a prendere perché sto usando 1.5 con i fornitori localmente all'interno del mio progetto per evitare dipendenze.

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

Qualche idea su cosa sto facendo male?

+0

hai provato go get github.com/asaskevich/govalidator? – pregmatch

+0

Sto usando go 1.5 quindi ho quel file all'interno del fornitore/github.com per evitare di usare go ottenere quindi versioni diverse su ambienti diversi –

risposta

8

IIRC, GO15VENDOREXPERIMENT funziona solo se il pacchetto che si sta costruendo è dentro $GOPATH/src, in modo da impostare

export GOPATH=`pwd` 

nel vostro build.sh lo rende sicuro. Se mettete il vostro apps_api all'interno dici ~/fakegopath/src/ ed eseguire

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

dovrebbe funzionare.

+0

Grazie, ma sto ottenendo questo: vai: la voce GOPATH non può iniziare con shell metacharacter '~': "~/Documents/gocode/src /" - devo compilare esplicitamente GOPATH? –

+2

Prova a sostituire '~' con '$ {HOME}'. –

+0

Ora ottengo ($ GOPATH non impostato)? –

Problemi correlati