利用dep代替go get获取私有库的方法教程
前言 go get 用来动态获取远程代码包的,目前支持的有BitBucket、GitHub、Google Code和Launchpad。这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install。下载源码包的go工具会自动根据不同的域名调用不同的源码工具,对应关系如下:
go get 的参数说明:
注意:这里的 Cv 参数对我们分析问题很有帮助。 但用过的人都知道,go get 功能比较弱,无法获取分支,标签,特定版本,fork,而 dep 可以做到。dep 还可以获取私有库。 用 dep 代替 go get 来获取私有库 用 gitee.com 私有库作测试。创建 gogettest 库。 可用: go get -u gitee.com/jinq0123/gogettest 如果改为私有库则失败: λ go get -v gitee.com/jinq0123/gogettest Fetching https://gitee.com/jinq0123/gogettest?go-get=1 Parsing meta tags from https://gitee.com/jinq0123/gogettest?go-get=1 (status code 403) package gitee.com/jinq0123/gogettest: unrecognized import path "gitee.com/jinq0123/gogettest" (parse https://gitee.com/jinq0123/gogettest?go-get=1: no go-import meta tags ()) 利用 dep 工具取私有库 https://github.com/golang/dep 安装dep go get -u github.com/golang/dep/cmd/dep 初始化 在项目目录下运行: dep init 生成 Gopkg.toml 和 Gopkg.lock 添加强制(constraint) 在 Gopkg.toml 中添加: [[constraint]] branch = "master" name = "gitee.com/jinq012345/gogettest" source = https://gitee.com/jinq0123/gogettest.git source 强制使用 https 来获取 gotgettest 库。 注意库名改成了 jinq012345,这样导入: imort "gitee.com/jinq012345/gogettest" name和source的设置可支持从 fork 库获取。 获取gogettest库 dep ensure 会弹出 https 的登录用户名和密码输入框。 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |