govendor使用
一、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使用相关推荐
- 使用govendor灵活管理Go程序中的依赖包
业务痛点 使用Go开发程序的过程中,为了方便开发,往往会引用很多标准库或者第三方的依赖包,第三方依赖包往往比标准库功能更全面更强大更接地气,那么如何管理众多的第三方依赖包呢?如何更新其版本?在不需要时 ...
- Glide和Govendor安装和使用
两个都是Go的包管理工具,二选一 Glide参考:golang 依赖管理 /etc/profile #Go export GOROOT=/home/lintong/software/go export ...
- gomod和govendor的简单理解
go module是Go语言默认的依赖管理工具,且没有必要在GOPATH中创建项目了. 常用命令: go mod init 初始化当前文件夹, 创建go.mod文件 go mod dow ...
- 017-通过govendor管理依赖包
1:安装 go get -u github.com/kardianos/govendor 2:配置环境变量 需要把 $GOPATH/bin/ 加到 PATH 中 D:\my_workspace\go_ ...
- go依赖管理-govendor
Golang 官方并没有推荐最佳的包管理方案.到了1.5版本时代,官方引入包管理的设计,加了 vendor 目录来支持本地包管理依赖.官方 wiki 推荐了多种支持这种特性的包管理工具,如:Godep ...
- linux go vendor目录,Go 包依赖管理工具 —— govendor
govendor 是一个基于 vendor 机制实现的 Go 包依赖管理命令行工具.与原生 vendor 无侵入性融合,也支持从其他依赖管理工具迁移,可以很方便的实现同一个包在不同项目中不同版本.以及 ...
- Golang包管理工具之govendor的使用
本文个人博客地址为:http://www.huweihuang.com/article/golang/govendor-usage/ 本文个人博客地址为:https://huweihuang.net/ ...
- govendor用法
为什么使用govendor go语言的依赖管理最主要的是版本控制问题. govendor是Golang的依赖包管理工具,它的出现可以避免不同用户在clone同一个项目后从外部获取不同依赖库版本的问题. ...
- golang中的包管理工具——govendor和godep简单学习
为什么用vendor目录 依赖问题 我们知道,一个工程稍大一点,通常会依赖各种各样的包.而Go使用统一的GOPATH管理依赖包,且每个包仅保留一个版本.而不同的依赖包由各自的版本工具独立管理,所以当所 ...
- 使用govendor管理Golang项目依赖
1.安装govendor go get -u -v github.com/kardianos/govendor 2.init 在项目根目录,比如我这里是tap项目,那就是进入tap目录,执行init命 ...
最新文章
- CentOS 7 中 Systemd详解
- 降Mail十八章(上)
- SPI 简介(备忘)
- hibernate教程--常用配置和核心API详解
- P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
- 将time_t格式的字符串转换成具体的时间, 存放在SystemTime结构体中
- 推荐一个比FiddlerCore好用的HTTP(S)代理服务器
- (47)VHDL实现8位奇偶校验电路(for loop语句)
- 苹果拟明年Q1推出配有mini-LED显示屏的27英寸iMac
- 高级排序求逆序数之分治法
- 苹果自动驾驶测试车近距离实拍,头顶新添传感器和硬件
- Yii 2.0 权威指南(1) 第一次问候
- 力软 框架 转 mysql_开发框架-.Net:Learun(力软敏捷开发)
- Css中路径data:image/png;base64的用法详解与操作
- 香港云服务器网站备案,中国香港云服务器网站备案
- ps软件打不开计算机受限制,w10打不开ps怎么解决
- android 截取验证码的两种实现方式
- Odoo 16 企业版手册 - 库存管理之产品类别
- 手机输入法emoji、颜文字存储
- EMI共模电感一般什么材质你知道吗
热门文章
- AX9000利用docker实现迅雷远程下载2
- MQTT 基础--遗嘱信息(Last will)和遗嘱标示(Testament):第 9 部分
- VC++ MFC实现的优秀的开源项目
- 打造企业级移动测试云平台
- 网络爬虫中Json数据的解析[以时光网为例]
- (技术类)中标麒麟linux终端命令操作之小白不知道的点(1)
- 映目云摄影以人脸识别惊艳Party现场,比亚迪元EV周年庆生
- Excel合并单元格快捷键
- html手机陀螺儀页面,详解html5如何获取手机陀螺仪角度信息的示例代码
- 苹果“教主”乔布斯:一个人的世界