登录
首页 >  Golang >  Go问答

使用供应商文件夹的优点是什么?

来源:stackoverflow

时间:2024-02-27 22:54:26 275浏览 收藏

从现在开始,努力学习吧!本文《使用供应商文件夹的优点是什么?》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我无法真正理解拥有供应商文件夹的目的。根据我了解到的情况,似乎供应商文件夹只有在您尝试使您的存储库与 1.11 之前的 golang 版本兼容时才有用。我们正在运行 golang 1.12.14

当我向同事提起此事时,他说:

请使用带有模块的供应商 - go 没有全局工件。目前,这是确保您拥有密封构建并且当有人更改其存储库中的某些内容时您的代码不会中断的最佳选择。

我以为这就是 Go 模块的作用?我问了这个问题,评论者说我不应该使用供应商?将“go modvendor”添加到预提交挂钩是否有意义?


解决方案


Go modules 通过将依赖项锁定到 go.sum 中,保证您能够确定性地构建软件包。话虽如此,只有当您的依赖项在未来仍然可以访问时,确定性地构建项目的承诺才成立。您不知道情况是否会如此。

另一方面,无论有或没有 Go 模块,供应都会带来更强的保证,因为它可以在代码旁边提交依赖项。因此,即使远程存储库不再可访问(删除、重命名等),您仍然可以构建项目。

另一种选择是使用 Go 模块和代理。您可以在 official documentation 中找到更多信息。您还可以查看一些 OSS 实现,例如 gomods/athensgoproxy/goproxy。如果您不想设置和维护自己的代理,市场上有一些商业优惠。

那么每次提交时你都应该 go modvendor 吗?好吧,这最终取决于您,具体取决于您想要的保证类型。但是,利用代理或供应商您的依赖项有助于更接近可重现的构建。

本篇关于《使用供应商文件夹的优点是什么?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>