Golang依赖管理最佳实践
在Golang,我们可以在GitHub上指定开源库作为依赖。例如:
import "github.com/RichardKnop/somelibrary" 这将尝试寻找一个分支,基于您的Go版本和默认为master如果我理解正确。 所以没有办法导入一个特定版本的依赖,例如: import "github.com/RichardKnop/somelibrary#v1.4.8" 那么在Go中管理依赖关系的最佳实践是什么? 我可以看到两种方法。 I.版本模块 是为主要版本创建具有突变的新模块吗? 例如,我的Go库可以定义模块v1和v2,那么你可以这样做: import "github.com/RichardKnop/somelibrary/v1" 要么: import "github.com/RichardKnop/somelibrary/v2" 基于你所需要的。对v1或v2所做的任何更改都不需要破坏任何API或工作功能。 II。分叉 这将使您完全控制Go代码所需的外部依赖项的版本。 例如,您可以将github.com/RichardKnop/somelibrary fork到您自己的GitHub帐户中,然后在您的代码中执行: import "github.com/ForkingUser/somelibrary" 然后你必须fork所有外部依赖,这似乎有点凌乱。但它会给你完全控制版本。你可以保持你的分叉的版本,你知道是在使用你的代码,只有更新叉,一旦你检查了新版本的依赖关系不会破坏任何东西。 想法?
注意:2015年6月,第一个支持出现在Go 1.5!
见c/10923/:
更新2016年1月:Go 1.6将使默认。
> issue 12278已解决。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |