供应商文件夹未与'go build'一起使用

chr*_*Tea 9 github go

我在MacOS Sierra中使用go-1.7.

我的项目在我的$ GOPATH/src文件夹中,里面有一个供应商文件夹及其所有依赖项.

我在我的代码中使用这样的依赖:

import (
"github.com/google/go-github/github"
)
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行,go build我得到的消息是我在$ GOROOT和$ GOPATH中找不到我使用的所有依赖项,并且在我的代码中添加"vendor"正在工作:

import (
"vendor/github.com/google/go-github/github"
)
Run Code Online (Sandbox Code Playgroud)

但据我所知,应该可以在剪辑的第一个代码中喜欢它.

啊,我们没有符号链接等等.

Piy*_*shh 6

从 go 1.12+ 开始,go modules 是处理依赖项的新方法。

  • 修复依赖版本 go mod init
  • 将模块放入供应商文件夹中 go mod vendor
  • 从供应商目录构建 go build -mod vendor -o output


chr*_*Tea 5

好的发现问题了:

我的 MacOS 文件系统不区分大小写,但看起来 go 工具无法处理这个问题...修复了我的 $GOPATH,现在它的工作方式就像它应该的那样...

  • 好吧,我只是更改了 shell 配置文件中的 $GOPATH...所以我将其更改为导出 GOPATH=/Projects/go,而不是导出 GOPATH=/projects/go,因为那是实际的文件夹名称。 (4认同)
  • 您能更详细地解释一下问题和解决方法吗?这可能对其他人有帮助。 (2认同)