【问题标题】:Error: "build flag -mod=vendor only valid when using modules" when building Go project错误:构建 Go 项目时“构建标志 -mod=vendor 仅在使用模块时有效”
【发布时间】:2020-08-01 10:41:24
【问题描述】:

根据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

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

【问题讨论】:

标签: go go-modules go-build


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 2014-10-29
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 2014-10-18
    相关资源
    最近更新 更多