【发布时间】:2015-12-20 18:55:53
【问题描述】:
我正在开发一个需要一些依赖项的项目。我对有关供应商的最佳实践感到有些困惑。目前我正在使用 GO15VENDOREXPERIMENT 并将依赖项复制到供应商目录中。
https://github.com/jeffellin/machine-cloudformation/tree/master/vendor/github.com
当我需要更新依赖项时,我会从 docker-machine 手动签出源代码并将其复制到我的供应商目录中。这带来了很多不必要的代码、测试等。有没有关于自动化的建议?我习惯了 maven,我可以在配置文件中指定版本信息。
GODEPS 呢?这对 GO15VENDOREXPERIMENT 有何影响。我更喜欢不需要将依赖项签入到源代码树中的解决方案。
【问题讨论】:
-
查看glide——它的主要目的是支持“go 1.5 vendor Experiment”。我最近自己在研究供应商主题并选择了这个工具,但是,当然还有其他选择。
-
看起来不错,但如果我阅读正确,它似乎不适用于特定标签。运行
glide get github.com/Masterminds/cookoo基本上会从github获取最新的commit id? -
您必须指定glide.yaml 并用所需的标签/分支/哈希填充它。
-
是否建议仍然提交供应商目录?我希望不会。
-
提交供应商目录可以让其他开发人员更轻松地使用标准 Go 工具编译您的应用程序。此外,如果您的任何依赖项将来在旧 url 上不再可用,那么您的项目是安全的。最终由你决定。