主页 > 知识库 > 利用dep代替go get获取私有库的方法教程

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

热门标签:地方门户网站 AI电销 呼叫中心市场需求 网站排名优化 百度竞价排名 铁路电话系统 服务外包 Linux服务器

前言

go get 用来动态获取远程代码包的,目前支持的有BitBucket、GitHub、Google Code和Launchpad。这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install。下载源码包的go工具会自动根据不同的域名调用不同的源码工具,对应关系如下:

  • BitBucket (Mercurial Git)
  • GitHub (Git)
  • Google Code Project Hosting (Git, Mercurial, Subversion)
  • Launchpad (Bazaar)

go get 的参数说明:

  • -d 只下载不安装
  • -f 只有在你包含了-u参数的时候才有效,不让-u去验证import中的每一个都已经获取了,这对于本地fork的包特别有用
  • -fix 在获取源码之后先运行fix,然后再去做其他的事情
  • -t 同时也下载需要为运行测试所需要的包
  • -u 强制使用网络去更新包和它的依赖包
  • -v 显示执行的命令

注意:这里的 –v 参数对我们分析问题很有帮助。

但用过的人都知道,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 的登录用户名和密码输入框。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

您可能感兴趣的文章:
  • Golang执行go get私有库提示"410 Gone" 的问题及解决办法
  • 解决go mod私有仓库拉取的问题
  • 完美解决golang go get私有仓库的问题
  • golang实践-第三方包为私有库的配置方案

标签:衡水 仙桃 兰州 湖南 崇左 铜川 湘潭 黄山

巨人网络通讯声明:本文标题《利用dep代替go get获取私有库的方法教程》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266