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

2018-09-24 21:27

阅读:528

  前言

  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 来获取私有库

  用私有库作测试。创建 gogettest 库。

  可用:

  如果改为私有库则失败:

   λ go get -v gitee.com/jinq0123/gogettest Fetching

  利用 dep 工具取私有库

  安装dep

  初始化

  在项目目录下运行:

   dep init

  生成 Gopkg.toml 和 Gopkg.lock

  添加强制(constraint)

  在 Gopkg.toml 中添加:

  source 强制使用 https 来获取 gotgettest 库。

  注意库名改成了 jinq012345, 这样导入:

  name和source的设置可支持从 fork 库获取。

  获取gogettest库

   dep ensure

  会弹出 https 的登录用户名和密码输入框。

  总结

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


评论


亲,登录后才可以留言!