有一个供应商文件夹有什么好处?

问题描述 投票:0回答:1

我实在无法理解设置供应商文件夹的目的。根据我了解到的情况,似乎供应商 夹子 只有当你想让你的 repo 兼容早于 1.11. 我们正在运行golang 1.12.14.

当我向我的同事提出这个问题时,他说:"请使用供应商与模块--go没有全局的工件库。

请使用供应商的模块 - Go没有一个全局的人工智能. 这是目前最好的选择,以确保你有一个密封的构建,你的代码不会打破 当有人改变他们的repo的东西。

我以为这就是Go模块的功能?我问了这个问题,有评论者说我不应该使用供应商?在提交前的钩子中加入`go mod vendor`有意义吗?

go vendor go-modules govendor
1个回答
6
投票

去模块 带来的保证,你将能够通过将依赖关系锁定在一个 go.sum. 也就是说,只有当你的依赖关系在未来仍然可以访问时,确定地构建你的项目的承诺才会成立。你不知道是否会是这样的情况。

另一方面,无论有没有Go模块,Vendoring都能带来更强的保证,因为它可以在代码旁边提交依赖关系。因此,即使远程仓库无法访问(删除、重命名等),你仍然可以构建你的项目。

另一种方法是使用Go模块和代理。你可以在 公文. 你也可以看看一些OSS的实现,如 诸神之神goproxygoproxy. 如果你不喜欢建立和维护自己的代理,市场上有一些商业优惠。

所以你应该 go mod vendor 每次承诺?这最终取决于你想要什么样的保证。不过是的,利用代理或提供你的依赖性有助于更接近可复制的构建。

© www.soinside.com 2019 - 2024. All rights reserved.