在构建Go项目时出现错误:“ build flag -mod = vendor仅在使用模块时有效”

时间:2019-04-13 04:55:06

标签: go go-modules go-build

根据this document,我需要在构建命令中添加-mod=vendor才能使用本地vendor文件夹:

  

默认情况下,在模块模式下,诸如go build之类的go命令会忽略供应商目录。 -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

该命令在本地正常运行,该错误仅在构建服务器上发生。

1 个答案:

答案 0 :(得分:1)

我认为您显示的帮助的关键部分是when in module mode。仅当您在GOPATH以外的代码上工作或设置了GO111MODULE=on环境变量时才会发生这种情况,因此我认为您是在本地环境中设置了此设置,而在构建服务器中没有设置。

有关启用模块支持的更多信息,请参见:

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