首页 > 解决方案 > 我应该使用 go mod 提交供应商目录吗?

问题描述

我在 go1.12 上使用 go 模块来处理我的 Go 依赖项。将目录提交vendor/到版本控制是否是最佳做法?

这与提交“供应商”目录是否是最佳实践有关?在使用的情况下会问这个问题dep。使用dep,提交vendor/是获得真正可重复构建的唯一方法。go 模块呢?

标签: gogo-modules

解决方案


除非您需要修改供应商的软件包,否则您不应该这样做。Go 模块已经为您提供了可重复的构建,因为该go.mod文件记录了您的依赖项的确切版本和提交哈希,该go工具将尊重并遵循这些。

vendor目录可以通过运行go mod vendor命令重新创建,并且默认情况下它甚至会被忽略,go build除非您要求它与-mod=vendor标志一起使用。

阅读更多详情:

Go wiki:我如何在模块中使用 vendoring?售卖会消失吗?

命令 go:模块和供应商

命令 go:制作依赖项的 vendored 副本


推荐阅读