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

 更新时间:2017年11月08日 10:29:39   作者:金庆  
go get 从指定源上面下载或者更新指定的代码和依赖,并对他们进行编译和安装,但go get功能比较差,所以下面这篇文章主要给大家介绍了关于利用dep代替go get获取私有库的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

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使用Gin框架实现路由分类处理请求流程详解

    Golang使用Gin框架实现路由分类处理请求流程详解

    Gin是一个golang的微框架,封装比较优雅,具有快速灵活,容错方便等特点,这篇文章主要介绍了Golang使用Gin框架实现路由分类处理请求,感兴趣的同学可以参考下文
    2023-05-05
  • Go 分布式链路追踪实现原理解析

    Go 分布式链路追踪实现原理解析

    分布式链路追踪作为解决分布式应用可观测问题的重要技术,愈发成为分布式应用不可缺少的基础设施,本文将详细介绍分布式链路的核心概念、架构原理和相关开源标准协议,并分享我们在实现无侵入 Go 采集 Sdk 方面的一些实践,需要的朋友可以参考下
    2022-06-06
  • 详解go语言中type关键词的几种使用

    详解go语言中type关键词的几种使用

    这篇文章主要介绍了详解go语言中type的几种使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • GO语言获取系统环境变量的方法

    GO语言获取系统环境变量的方法

    这篇文章主要介绍了GO语言获取系统环境变量的方法,实例分析了Getenv方法操作环境变量的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • go语言用八百行代码实现一个JSON解析器

    go语言用八百行代码实现一个JSON解析器

    这篇文章主要为大家介绍了go语言用八百行代码实现一个JSON解析器实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Go结合MQTT实现通信的示例代码

    Go结合MQTT实现通信的示例代码

    本文主要介绍了Go结合MQTT实现通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • GO中对map排序的实现

    GO中对map排序的实现

    本文主要介绍了GO中对map排序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Golang中的错误处理的示例详解

    Golang中的错误处理的示例详解

    这篇文章主要为大家详细介绍了Golang中的错误处理的相关资料,文章中的示例代码讲解详细,对我们学习Golang有一定帮助,需要的可以参考一下
    2022-11-11
  • Go http.Transport 主要参数说明

    Go http.Transport 主要参数说明

    这篇文章主要为大家介绍了Go http.Transport主要参数说明,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • gin正确多次读取http request body内容实现详解

    gin正确多次读取http request body内容实现详解

    这篇文章主要为大家介绍了gin正确多次读取http request body内容实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01

最新评论