首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在golang中版本化软件包?

如何在golang中版本化软件包?
EN

Stack Overflow用户
提问于 2015-02-24 22:47:26
回答 2查看 15.6K关注 0票数 19

我已经读了一大堆关于导入第三方go包的文章和问题,这些问题看起来都很简单,但我不明白的是,我读过的文章中没有一篇提到版本控制。在Dartlang中,有一个pubspec文件,它定义了您的包,包括它的版本和依赖项,包括它们所需的版本。如果我做了一个go get github.com/gorilla/sessions并编写了我的应用程序,然后6个月后我不得不清理我的目录并重新获得所有东西,在这段时间里,这个包已经被更新,并破坏了与我使用旧版本的代码的向后兼容性?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-24 22:56:34

官方版本,来自GO FAQ

如果您正在使用外部提供的包,并且担心它可能会以意想不到的方式更改,最简单的解决方案是将其复制到您的本地存储库。(这是谷歌内部采取的方法。)将副本存储在将其标识为本地副本的新导入路径下。

该方法有许多替代方法,主要是基于声明您正在使用的项目的确切版本。

参见示例"Dead Simple Dependencies in Go -- Keep it simple and keep your sanity.“(基于emil2k/vend)

下面列出了Go Dependency Management的主要不同选项:

"“

(及其关联的GOPM mailing list)

更新2015年7月:

Go团队的官方提供方法是由Dave Cheney.在上提出的名为“Dave Cheney.gb”的discussed here.

  • an替代go构建工具

更新Q4 2017:正如提到的below,是固定依赖版本的官方工具(即使这种固定方法并不是没有批评的:参见"The cargo cult of versioning")。

当Go 1.10开发开始时,它应该被合并到工具链中,according to its roadmap

更新Q2 2018:go dep已被 in following works on vgo取代。

票数 24
EN

Stack Overflow用户

发布于 2017-11-16 12:24:00

我使用dep作为golang项目的依赖项管理工具。请使用下面的链接dep tool获取更多信息。

dep是Go的依赖管理工具。它需要Go 1.9或更高版本才能编译。

dep是“官方实验”。从1.11开始,Go工具链(实验性地)采用了与dep截然不同的方法。因此,我们正在继续开发dep,但齿轮工作主要是为了开发工具链中版本控制行为的替代原型。

当前状态: 2019年1月

dep可安全用于生产。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28698814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档