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
        }

猜你喜欢

转载自www.cnblogs.com/xdao/p/golang_package.html
今日推荐