golang包管理的取巧

常见的golang的包管理工具

  • glide 使用yaml做配置,语义化版本管理,可以设置镜像,下载x系列库,但是x系列库被第三方库依赖时会出现下载失败。

  • dep 亲儿子,语义化版本管理,无法解决墙

  • vgo 亲儿子为了解决语义化版本和导入版本的问题 ,没研究,猜测也无法解决墙

  • gvt 和go get 一样,只是下载到了vendor目录

经过一段时间的折腾后,发现还是gvt 最好用,虽然没有什么语义化版本,但是好处是可以设置镜像,而且没有glide中x系列库被依赖而无法下载的问题。

解决方案

使用gvt,并把vendor下的gvt配置文件manifest加入git仓库,这样其他人可以使用gvt restore恢复
常用的x系列库配置为:

       {
			"importpath": "golang.org/x/crypto",
			"repository": "https://github.com/golang/crypto",
			"vcs": "git",
			"revision": "",
			"branch": "master",
			"notests": true
		},
		{
			"importpath": "golang.org/x/image",
			"repository": "https://github.com/golang/image",
			"vcs": "git",
			"revision": "",
			"branch": "master",
			"notests": true
		},
		{
			"importpath": "golang.org/x/net",
			"repository": "https://github.com/golang/net",
			"vcs": "git",
			"revision": "",
			"branch": "master",
			"notests": true
		},
		{
			"importpath": "golang.org/x/sync",
			"repository": "https://github.com/golang/sync",
			"vcs": "git",
			"revision": "",
			"branch": "master",
			"notests": true
		},
		{
			"importpath": "golang.org/x/sys",
			"repository": "https://github.com/golang/sys",
			"vcs": "git",
			"revision": "",
			"branch": "master",
			"notests": true
		},
		{
			"importpath": "golang.org/x/text",
			"repository": "https://github.com/golang/text",
			"vcs": "git",
			"revision": "",
			"branch": "master",
			"notests": true
		}

原文地址:https://www.cnblogs.com/xdao/p/golang_package.html