一、Go包管理工具Vendor
一、使用步骤
  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可以快速查看你项目中的外部依赖包。例如:
1 v github.com/astaxie/beego
2 v github.com/astaxie/beego/cache
3 v github.com/astaxie/beego/cache/redis
4 v github.com/astaxie/beego/config
5 v github.com/astaxie/beego/context
6 v github.com/astaxie/beego/context/param
7 v github.com/astaxie/beego/grace
8 l benben-project/router
9 l benben-project/config
10 l benben-project/controllers
11 l benben-project/log
12 l benben-project/models
  其中最左边的是描述包的状态,右边是你工程的依赖包

2、govendor add添加依赖包到vendor目录下,在使用 govendor add命令时,后面需要跟上下面介绍的一些状态,也可以直接跟上缺失包的地址,如下文常见错误中的做法。
  3、govendor update从你的GOPAHT中更新你工程的依赖包
  4、govendor remove从你工程下的vendor文件中移除对应的包
  5、govendor fetch添加或者更新vendor文件夹中的包
三、govendor使用状态来指定包
1 +local (l) 表示工程中的包
2 +external (e) 从GOPATH中引用的包,但不包含在你的当前工程中
3 +vendor (v) vendor文件夹中的包
4 +std (s) Go标准库中的包
5 +excluded (x) 从vendor文件中排除的外部依赖包
6 +unused (u) vendor文件中存在但却未使用的包
7 +missing (m) 项目引用但却为发现的包
8 +program § main包中包
  其中有一些状态存在简写,例如:+std可以用+s表示,+external可以用+ext或者+e表示,+external可以用+exc或者+x表示。

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

1 +local,grogram表示既满足+local又满足+program。
2 +local +vendor表示只要满足两者之一。
3 +vendor,program +std表示vendor和program是与的关系,整体和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使用

标签:iss red 有关 包管理 class pre git tool ssi

原文地址:https://www.cnblogs.com/happy-king/p/9191776.html

govendor使用相关推荐

  1. 使用govendor灵活管理Go程序中的依赖包

    业务痛点 使用Go开发程序的过程中,为了方便开发,往往会引用很多标准库或者第三方的依赖包,第三方依赖包往往比标准库功能更全面更强大更接地气,那么如何管理众多的第三方依赖包呢?如何更新其版本?在不需要时 ...

  2. Glide和Govendor安装和使用

    两个都是Go的包管理工具,二选一 Glide参考:golang 依赖管理 /etc/profile #Go export GOROOT=/home/lintong/software/go export ...

  3. gomod和govendor的简单理解

    go module是Go语言默认的依赖管理工具,且没有必要在GOPATH中创建项目了. 常用命令: go mod init        初始化当前文件夹, 创建go.mod文件 go mod dow ...

  4. 017-通过govendor管理依赖包

    1:安装 go get -u github.com/kardianos/govendor 2:配置环境变量 需要把 $GOPATH/bin/ 加到 PATH 中 D:\my_workspace\go_ ...

  5. go依赖管理-govendor

    Golang 官方并没有推荐最佳的包管理方案.到了1.5版本时代,官方引入包管理的设计,加了 vendor 目录来支持本地包管理依赖.官方 wiki 推荐了多种支持这种特性的包管理工具,如:Godep ...

  6. linux go vendor目录,Go 包依赖管理工具 —— govendor

    govendor 是一个基于 vendor 机制实现的 Go 包依赖管理命令行工具.与原生 vendor 无侵入性融合,也支持从其他依赖管理工具迁移,可以很方便的实现同一个包在不同项目中不同版本.以及 ...

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

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

  8. govendor用法

    为什么使用govendor go语言的依赖管理最主要的是版本控制问题. govendor是Golang的依赖包管理工具,它的出现可以避免不同用户在clone同一个项目后从外部获取不同依赖库版本的问题. ...

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

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

  10. 使用govendor管理Golang项目依赖

    1.安装govendor go get -u -v github.com/kardianos/govendor 2.init 在项目根目录,比如我这里是tap项目,那就是进入tap目录,执行init命 ...

最新文章

  1. CentOS 7 中 Systemd详解
  2. 降Mail十八章(上)
  3. SPI 简介(备忘)
  4. hibernate教程--常用配置和核心API详解
  5. P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
  6. 将time_t格式的字符串转换成具体的时间, 存放在SystemTime结构体中
  7. 推荐一个比FiddlerCore好用的HTTP(S)代理服务器
  8. (47)VHDL实现8位奇偶校验电路(for loop语句)
  9. 苹果拟明年Q1推出配有mini-LED显示屏的27英寸iMac
  10. 高级排序求逆序数之分治法
  11. 苹果自动驾驶测试车近距离实拍,头顶新添传感器和硬件
  12. Yii 2.0 权威指南(1) 第一次问候
  13. 力软 框架 转 mysql_开发框架-.Net:Learun(力软敏捷开发)
  14. Css中路径data:image/png;base64的用法详解与操作
  15. 香港云服务器网站备案,中国香港云服务器网站备案
  16. ps软件打不开计算机受限制,w10打不开ps怎么解决
  17. android 截取验证码的两种实现方式
  18. Odoo 16 企业版手册 - 库存管理之产品类别
  19. 手机输入法emoji、颜文字存储
  20. EMI共模电感一般什么材质你知道吗

热门文章

  1. AX9000利用docker实现迅雷远程下载2
  2. MQTT 基础--遗嘱信息(Last will)和遗嘱标示(Testament):第 9 部分
  3. VC++ MFC实现的优秀的开源项目
  4. 打造企业级移动测试云平台
  5. 网络爬虫中Json数据的解析[以时光网为例]
  6. (技术类)中标麒麟linux终端命令操作之小白不知道的点(1)
  7. 映目云摄影以人脸识别惊艳Party现场,比亚迪元EV周年庆生
  8. Excel合并单元格快捷键
  9. html手机陀螺儀页面,详解html5如何获取手机陀螺仪角度信息的示例代码
  10. 苹果“教主”乔布斯:一个人的世界