首页 > 解决方案 > go get: 被 -mod=vendor 禁用

问题描述

我正在使用 Go 模块,并且我使用供应商模式,因为它可以将我的 CI 速度提高 2 倍。

我愿意:

go mod vendor
go build -mod=vendor ...

我可以毫无问题地构建我的应用程序。

但是当我想使用go get时,例如安装golint

go get -u golang.org/x/lint/golint

它将再次下载我所有的项目依赖项,而不仅仅是 golint。

如果我尝试:

go get -mod=vendor -u golang.org/x/lint/golint

我得到:

go get: disabled by -mod=vendor

Lint 将在我的开发 docker 镜像中使用,但不会在 prod 中使用,所以我不想将它添加到go.mod

我能做些什么呢?

标签: gogo-modules

解决方案


go get保持依赖项要求之间的一致性,并使用import源文件中的语句图来确定要更新哪些包。

因此go get -u必须至少下载go.mod您的依赖项的文件,以及所请求包的源代码及其升级的依赖项。


推荐阅读