Go语言是否有像Java中的Maven这样的打包系统? 我试图了解如何进行依赖关系管理,以及是否有办法轻松完成。
答案 0 :(得分:6)
嗯,不,它没有。并且必须理解go get
不是包管理器。
不过,还有几点需要学习:
This常见问题解答条目。
从版本1.5开始,Go工具对" vendoring"提供了基本的支持。 - 即,将所需的依赖项与项目一起打包。
支持仅以处理名为" vendor"的特殊目录的形式出现。以特殊方式处于项目的顶层。 该工具不提供任何类型的管理该目录的内容。 这方面的常用方法包括Git支持的子树合并和子模块(以及其他VC系统的等效设施)和外部工具(见下文)。
默认情况下,在Go 1.6中启用了此支持。
有许多第三方工具使用各种方法为Go实现打包,以执行此任务。
@AlexBrand
指出了seemingly complete list,但由于在那里尝试每个解决方案几乎没有理由,我会给出一个自以为是的暗示 - 基于我潜伏在转到邮件列表 - 查看这些工具:gb
,glide
,govendor
,godep
。
另请考虑阅读Go邮件列表中的this thread及其链接的资源。