我们应该在开发golang库时始终将自己的包放在vendor / folder中吗?

时间:2016-05-20 16:25:47

标签: go vendor glide-golang

最近我读了一篇文章http://glide.readthedocs.io/en/latest/vendor/,有一些建议,其中一个是:

  

库(没有main包的代码库)不应将外部包存储在其VCS中的vendor/文件夹中,除非他们有特定原因并理解他们为什么要这样做。

我的问题是:

根据这个建议,在开发golang库时,我们是否应该始终在vendor/文件夹中放置我们自己的包(而不是那些第三方包)?

2 个答案:

答案 0 :(得分:1)

“外部包裹”是指居住在此仓库之外的包裹。因此,如果这些包与导入它们的代码位于不同的存储库中:是的,请提供它们。

如果您只想在实现库时编写和使用多个包:不,请将它们放在vendor repo外部的子文件夹中

例如

... ▸ server/ server.go "package server" ▸ store/ ▸ testutils/ ▾ vendor/ ▸ bitbucket.org/ ▸ github.com/ ...

答案 1 :(得分:1)

不,在供应商/目录中添加自己的包是没有意义的,因为供应商目录适用于项目外部的代码。

此建议的含义是:如果您正在开发库,请不要使用vendor /存储第三方库,除非您知道自己在做什么以及为什么要这样做。