使用步骤

  1. 首先,从go get -u github.com/kardianos/govendor下载govendor工具到本地。
  2. govendor使用时,必须保证你的工程项目放在GOPATH/src目录下。
  3. 在Go命令行执行govendor init,自动生成vendor文件夹(存放你项目需要的依赖包)和vendor.json文件(有关依赖包的描述文件)。
  4. 这时你查看vendor.json文件时,可能还没有什么内容。此时你需要将GOPATH文件夹中的包添加到vendor目录下,只需执行命令govendor add +external或者govendor add +e
  5. 此时看到的vendor.json文件就比之前多了许多,例如:
{"comment": "","ignore": "test","package": [{"checksumSHA1": "T6YlZ5PORNIwutJP7Vfe29XKQno=","path": "github.com/astaxie/beego","revision": "d96289a81bf67728cff7a19b067aaecc65a62ec6","revisionTime": "2017-07-18T16:56:48Z"},{"checksumSHA1": "vvdzuefaGsQVMbcON/s0oqjrRkU=","path": "github.com/astaxie/beego/cache","revision": "d96289a81bf67728cff7a19b067aaecc65a62ec6","revisionTime": "2017-07-18T16:56:48Z"},{"checksumSHA1": "OFioicOCBXIM8IJ5W9SE0EOWmSA=","path": "github.com/astaxie/beego/session/redis","revision": "d96289a81bf67728cff7a19b067aaecc65a62ec6","revisionTime": "2017-07-18T16:56:48Z"},{"checksumSHA1": "B6+D5EMUhOmo6I5wIVoTwNfcsV8=","path": "github.com/astaxie/beego/toolbox","revision": "d96289a81bf67728cff7a19b067aaecc65a62ec6","revisionTime": "2017-07-18T16:56:48Z"},{"checksumSHA1": "wyz5HgdoDurteHhp63m+CwKx7zg=","path": "github.com/astaxie/beego/utils","revision": "d96289a81bf67728cff7a19b067aaecc65a62ec6","revisionTime": "2017-07-18T16:56:48Z"}],"rootPath": "benben-project"
}

其他常用命令

  1. govendor list可以快速查看你项目中的外部依赖包。例如:
 v  github.com/astaxie/beegov  github.com/astaxie/beego/cachev  github.com/astaxie/beego/cache/redisv  github.com/astaxie/beego/configv  github.com/astaxie/beego/contextv  github.com/astaxie/beego/context/paramv  github.com/astaxie/beego/gracel  benben-project/routerl  benben-project/configl  benben-project/controllersl  benben-project/logl  benben-project/models

其中最左边的是描述包的状态,右边是你工程的依赖包
2. govendor add添加依赖包到vendor目录下,在使用 govendor add命令时,后面需要跟上下面介绍的一些状态,也可以直接跟上缺失包的地址,如下文常见错误中的做法。
3. govendor update从你的GOPAHT中更新你工程的依赖包
4. govendor remove从你工程下的vendor文件中移除对应的包
5. govendor fetch添加或者更新vendor文件夹中的包

govendor使用状态来指定包

+local     (l) 表示工程中的包
+external  (e) 从GOPATH中引用的包,但不包含在你的当前工程中
+vendor    (v) vendor文件夹中的包
+std       (s) Go标准库中的包
+excluded  (x) 从vendor文件中排除的外部依赖包
+unused    (u) vendor文件中存在但却未使用的包
+missing   (m) 项目引用但却为发现的包
+program   (p) main包中包

其中有一些状态存在简写,例如:+std可以用+s表示,+external可以用+ext或者+e表示,+external可以用+exc或者+x表示。

在使用时,你也可以对这些状态进行逻辑组合,例如:

  1. +local,grogram表示既满足+local又满足+program
  2. +local +vendor表示只要满足两者之一。
  3. +vendor,program +std表示vendorprogram是与的关系,整体和std是或的关系
  4. +vendor,^program表示满足vendor,但却不满足program

常见错误
1. 服务器提示某个依赖包没有找到
原因可能是vendor文件中没有该包或者vendor.json文件中没有该包的描述信息。假设"github.com/astaxie/beego/logs"包的信息在vendor.json文件中没有找到,则在go命令行中执行govendor add github.com/astaxie/beego/logs

Go包管理工具Vendor使用教程相关推荐

  1. python各种包安装顺序_史上最全的Python包管理工具:Anaconda教程

    事实上Anaconda 和 Jupyter notebook已成为数据分析的标准环境. 简单来说,Anaconda是包管理器和环境管理器,Jupyter notebook 可以将数据分析的代码.图像和 ...

  2. 包管理工具conda极简教程

    包管理工具conda极简教程 conda的作用 Anaconda是目前非常流行的一个python包管理器,自带很多流行的python库,包括numpy,pandas等,当然还有conda.而Conda ...

  3. Go:包管理工具GOPATH、vendor、dep 、go module

    目录 Go包管理工具:前言 GOPATH vendor.dep Go modules Module 文件 go mod命令 Go modules使用步骤: go module的文件下载后位置: Go包 ...

  4. Python 包管理工具解惑

    本文转载自http://zengrong.net/post/2169.htm,感谢原作者. 一.困惑 作为一个 Python 初学者,我在包管理上感到相当疑惑(嗯,是困惑).主要表现在下面几个方面: ...

  5. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件? 当我们点开下载页时, 一 ...

  6. Golang包管理工具之govendor的使用

    本文个人博客地址为:http://www.huweihuang.com/article/golang/govendor-usage/ 本文个人博客地址为:https://huweihuang.net/ ...

  7. dep指定版本 go_Go 包管理工具-dep

    dep 是一个 golang 依赖管理工具,需要在 Go 1.7 及更高的版本中使用. 1. 安装 安装 dep 工具的方式有很多种,如果是 mac 电脑的话,只需要如下命令: brew instal ...

  8. Golang包管理工具(三)之dep的使用

    本文个人博客地址:http://www.huweihuang.com/article/golang/dep-usage/ 更多golang包管理工具参考 - dep的使用 - glide的使用 - g ...

  9. golang中的包管理工具——govendor和godep简单学习

    为什么用vendor目录 依赖问题 我们知道,一个工程稍大一点,通常会依赖各种各样的包.而Go使用统一的GOPATH管理依赖包,且每个包仅保留一个版本.而不同的依赖包由各自的版本工具独立管理,所以当所 ...

  10. 小白都能看懂的go语言包管理工具DEP详解

    简介 众所周知GO语言包管理工具百花齐放,前有godep.glide.govendor,后有dep. 今天我们来了解一下"dep",看看它是怎样实现包管理的. dep安装 二进制文 ...

最新文章

  1. 【C语言】宏offsetof的模拟实现 (计算结构体中某变量相对于首地址的偏移)
  2. 用上AI后,银行每年竟然能多赚1万亿美元丨麦肯锡最新调查报告
  3. iOS开发-NSString去掉所有换行及空格
  4. C语言优先级——取反和移位
  5. 关键词提取_NLP 关键词 提取 实战 案例
  6. Mapper 接口无法注入或Invalid bound statement (not found)
  7. Oracle 发布基于 VS Code 的开发者工具,轻松连接 Oracle 数据库
  8. 前端学习(3015):vue+element今日头条管理--自定义验证规则
  9. JeecgBoot单体升级微服务之二
  10. PHP中三元运算符的用法_php 三元运算符实例详细介绍
  11. TCP TIME_WAIT详解
  12. 睡眠监测微信小程序源码
  13. [Zer0pts2020]ROR1
  14. Excel之vlookup函数的模糊匹配和精准匹配
  15. 【软考】软件设计师知识点整理(待更新)
  16. [Anaconda学习]本地查看代理ip,anaconda挂代理
  17. 使用学信网认证,免费获取JetBrains学习产品
  18. 三大常用个人邮箱 163 Gmail QQMail之用户体验分析
  19. 为什么转置一个512x512的矩阵,会比513x513的矩阵慢很多?
  20. Linux下录屏软件obs安装

热门文章

  1. 用scratch2.0编写乒乓球游戏
  2. React `controlled` 及 `uncontrolled` 组件
  3. 统计物理中积分计算和态密度计算要点
  4. Excel文件减肥和加速
  5. windows部署tensorflow serving
  6. mysql 事务一直running_事务一直running?记录一次事务异常导致的下单阻塞
  7. PERL 连接FTP实现文件上传下载
  8. Homekit智能通断器
  9. 【typescript】infer的理解与使用
  10. ubuntu18.04 eclipse +sdcc开发stm8l152 并且单步调试