2

根据这个文档,我需要添加-mod=vendor到我的构建命令以使用我的本地vendor文件夹:

默认情况下,像 go build 这样的命令在模块模式下会忽略供应商目录。-mod=vendor 标志(例如,go build -mod=vendor)指示 go 命令使用主模块的顶级供应商目录来满足依赖关系。

当我运行这个命令时:

go build -mod=vendor -a -ldflags "-s -w -X github.com/my-api/pkg/config.Version=169.3988801" -o bin/my-api

我收到此错误:

build flag -mod=vendor only valid when using modules

该命令在本地按预期工作,错误仅发生在构建服务器上。

4

1 回答 1

3

我认为您所展示的帮助的关键部分是when in module mode. 这只会在您处理 GOPATH 之外的代码或设置GO111MODULE=on环境变量时发生,所以我认为您在本地环境中设置了此设置,但在构建服务器中没有设置。

有关启用模块支持的更多信息在这里:

https://golang.org/cmd/go/#hdr-Preliminary_module_support

于 2019-04-13T18:17:05.420 回答