go - 错误:构建 Go 项目时“构建标志 -mod=vendor 仅在使用模块时有效”
问题描述
根据这个文档,我需要添加-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
该命令在本地按预期工作,错误仅发生在构建服务器上。
解决方案
我认为您所展示的帮助的关键部分是when in module mode
. 这只会在您处理 GOPATH 之外的代码或设置GO111MODULE=on
环境变量时发生,所以我认为您在本地环境中设置了此设置,但在构建服务器中没有设置。
有关启用模块支持的更多信息在这里:
推荐阅读
- html - 聚焦时如何更改兄弟元素的字体粗细?
- linux - 从两种不同方法构建的 libsqlite3.so.0.8.6 的大小
- scala - 如何在 spark Scala 的 foldLeft 中使用条件?
- sql - 如何在 Netezza 中用双引号将列括起来
- pyspark - .isin() 带有来自数据框的列
- docker - Docker - 无法通过脚本删除容器内的文件
- oracle - AWS RDS 分配的存储大小
- bash - 如何计算日志文件中两行之间的时间差?
- google-sheets - 用于计算电子表格中用 , 或 / 分隔的名称的公式
- visual-studio - 如何在 Visual Studio 2019 中为类库项目应用嵌套文件