源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

利用dep代替go get获取私有库的方法教程

  • 时间:2020-03-10 04:54 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:利用dep代替go get获取私有库的方法教程
[b]前言[/b] go get 用来动态获取远程代码包的,目前支持的有BitBucket、GitHub、Google Code和Launchpad。这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install。下载源码包的go工具会自动根据不同的域名调用不同的源码工具,对应关系如下: [list] [*]BitBucket (Mercurial Git)[/*] [*]GitHub (Git)[/*] [*]Google Code Project Hosting (Git, Mercurial, Subversion)[/*] [*]Launchpad (Bazaar)[/*] [/list] [b]go get 的参数说明:[/b] [list] [*]-d 只下载不安装[/*] [*]-f 只有在你包含了-u参数的时候才有效,不让-u去验证import中的每一个都已经获取了,这对于本地fork的包特别有用[/*] [*]-fix 在获取源码之后先运行fix,然后再去做其他的事情[/*] [*]-t 同时也下载需要为运行测试所需要的包[/*] [*]-u 强制使用网络去更新包和它的依赖包[/*] [*]-v 显示执行的命令[/*] [/list] [b]注意:[/b]这里的 –v 参数对我们分析问题很有帮助。 但用过的人都知道,go get 功能比较弱,无法获取分支,标签,特定版本,fork, 而 dep 可以做到。dep 还可以获取私有库。 [b]用 dep 代替 go get 来获取私有库[/b] 用 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 ())
[b]利用 dep 工具取私有库[/b] [url=https://github.com/golang/dep]https://github.com/golang/dep[/url] 安装dep
go get -u github.com/golang/dep/cmd/dep
初始化 在项目目录下运行:
dep init
生成 Gopkg.toml 和 Gopkg.lock [b]添加强制(constraint)[/b] 在 Gopkg.toml 中添加:
[[constraint]]
 branch = "master"
 name = "gitee.com/jinq012345/gogettest"
 source = [url=https://gitee.com/jinq0123/gogettest.git]https://gitee.com/jinq0123/gogettest.git[/url]
source 强制使用 https 来获取 gotgettest 库。 注意库名改成了 jinq012345, 这样导入:
imort "gitee.com/jinq012345/gogettest"
name和source的设置可支持从 fork 库获取。 [b]获取gogettest库[/b]
dep ensure
会弹出 https 的登录用户名和密码输入框。 [b]总结[/b] 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部