GO(Golang)供应商实验在mac osx上失败

时间:2016-05-16 12:19:19

标签: go osx-yosemite vendor

在osx上使用go 1.6.2进行供应商实验时遇到一些麻烦。

继承我的目录结构:

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

我的GOPATH设置为/Users/me/project/application 然而,当我尝试运行任何go工具(例如构建)时,它似乎在查看application/src而不是application/vendor,从而获得了大量的内容:

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)

正如你可以看到go env输出供应商实验默认开启,因为它应该只是它似乎没有工作:

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"

现在,funkiness的来源可能是以前的安装过程中的宿醉。我已经安装了各种版本的随着时间的推移,一些通过gvm(去版本管理器)和一些通过自制程序。所以我已经卸载了gvm以及它已经安装的版本,也没有安装与自制软件一起使用自制软件重新安装1.6.2。

go version output:

go version go1.6.2 darwin/amd64

走了:

/usr/local/bin/go

任何想法可能在这里出错,或者我或许只是误解了如何运作?

P.S。请知道您是否需要更多信息,很高兴提供

1 个答案:

答案 0 :(得分:2)

  

它似乎在查看application / src

是的,go正在$GOPATH/src查看vendor来源文件夹的来源

一切都应该在$GOPATH/src

vendor folder 只能由目录树中的代码导入,该目录树的根目录是" vendor"。
但它是您的来源的一部分,因此,应该在$GOPATH/src下。