go - 我应该使用 go mod 提交 vendor 目录吗?

标签 go go-modules

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

这与 Is it best-practice to commit the `vendor` directory? 有点相关。在使用 dep 的情况下会问这个问题.与 dep , 提交 vendor/是获得真正可重复构建的唯一方法。 go 模块呢?

最佳答案

除非您需要修改 vendor 的软件包,否则您不应该这样做。 Go 模块已经为您提供了可重现的构建,如 go.mod文件记录了您的依赖项的确切版本和提交哈希,go工具会尊重和遵循。
vendor可以通过运行 go mod vendor 重新创建目录命令,它甚至被 go build 默认忽略除非您要求它与 -mod=vendor 一起使用旗帜。

阅读更多详情:

Go wiki: How do I use vendoring with modules? Is vendoring going away?

Command go: Modules and vendoring

Command go: Make vendored copies of dependencies

关于go - 我应该使用 go mod 提交 vendor 目录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60865004/

相关文章:

go - 如何在Go-gin中的中间件之间共享变量

go - 在 Go 中使用测试依赖项但防止导出它们的最佳方法

go - 如何在另一个模块中使用 "GOPATH"之外的模块?

Goland 无法使用 Go 1.14 识别我的 vendor 目录

json - 如何解码嵌套结构 JSON

go - 将图像编码为基本64位编码的字节格式

go - 安装后找不到godotenv命令

xml - 转到XML编码(marshal): Unintended Output of Slice

go - 我想从 Goproxy 中删除我的私有(private)包

go - 当我将 go mod 添加到我的项目时,无法运行它,我该如何解决?