使用govendor管理Golang项目依赖
1、安装govendor
go get -u -v github.com/kardianos/govendor
2、init
在项目根目录,比如我这里是tap项目,那就是进入tap目录,执行init命令
govendor init
ls
cd vendor/
ls
这个 vendor.json 会类似 godep 工具中的描述文件版本的功能。
3、执行命令将当前应用必须的文件包含进来
//将外部依赖一同加入vendor中
govendor add +external
// 更新外部所有依赖
govendor update +external
4、vendor.json
vendor.json内容如下:
{"comment": "","ignore": "test","package": [{"checksumSHA1": "Ufix4JjY69s87o5ftKQ39OcxvTU=","path": "github.com/Shopify/sarama","revision": "2fd980e23bdcbb8edeb78fc704de0c39a6567ffc","revisionTime": "2017-06-30T17:40:37Z"},{"checksumSHA1": "sUP5RbqwDFzHiW538NBTJ3c57aw=","path": "github.com/bsm/sarama-cluster","revision": "f1ef2fda9bccc377dad24d7f7522d46b6a9a817b","revisionTime": "2017-07-31T13:08:41Z"},{"checksumSHA1": "GcIrB1ug6mS8aG73v1KtlHfva9Q=","path": "github.com/davecgh/go-spew/spew","revision": "adab96458c51a58dc1783b3335dcce5461522e75","revisionTime": "2017-07-11T18:34:51Z"},{"checksumSHA1": "o0psFRtB8EoelTAEhJSqrtXdwJY=","path": "github.com/eapache/go-resiliency/breaker","revision": "b1fe83b5b03f624450823b751b662259ffc6af70","revisionTime": "2017-06-07T16:36:15Z"},{"checksumSHA1": "jZ/Z0i7G8a+9GQ7uOzUbLI/FubU=","path": "github.com/eapache/go-xerial-snappy","revision": "bb955e01b9346ac19dc29eb16586c90ded99a98c","revisionTime": "2016-06-09T14:24:08Z"},{"checksumSHA1": "Jv+5MP/HXSnx830En3Iwmj9v7g0=","path": "github.com/eapache/queue","revision": "44cc805cf13205b55f69e14bcb69867d1ae92f98","revisionTime": "2016-08-05T00:47:13Z"},{"checksumSHA1": "OV+/R43DDDJ/Gxrx9oQob/K7sL0=","path": "github.com/golang/snappy","revision": "553a641470496b2327abcac10b36396bd98e45c9","revisionTime": "2017-02-15T23:32:05Z"},{"checksumSHA1": "imr1t7r6P5Bz7DGR2sxDymLWo7w=","path": "github.com/pierrec/lz4","revision": "5a3d2245f97fc249850e7802e3c01fad02a1c316","revisionTime": "2017-05-19T17:06:25Z"},{"checksumSHA1": "ieRRw3MpbPjA3z2MJVHDsC9jkjc=","path": "github.com/pierrec/xxHash/xxHash32","revision": "a0006b13c722f7f12368c00a3d3c2ae8a999a0c6","revisionTime": "2017-07-14T08:24:55Z"},{"checksumSHA1": "DIjooF5+DLH5JSOjqnBlfNh9dFU=","path": "github.com/rcrowley/go-metrics","revision": "1f30fe9094a513ce4c700b9a54458bbb0c96996c","revisionTime": "2016-11-28T21:05:44Z"},{"checksumSHA1": "fAm2yk7tTesaQ5ivVUPjTpKlxdo=","path": "github.com/sirupsen/logrus","revision": "95cd2b9c79aa5e72ab0bc69b7ccc2be15bf850f6","revisionTime": "2017-11-18T12:42:23Z"},{"checksumSHA1": "X1NTlfcau2XcV6WtAHF6b/DECOA=","path": "golang.org/x/crypto/ssh/terminal","revision": "94eea52f7b742c7cbe0b03b22f0c4c8631ece122","revisionTime": "2017-11-28T01:43:40Z"},{"checksumSHA1": "B2t4JjkjyoUINOnKXviNypvgWpo=","path": "golang.org/x/sys/unix","revision": "bf42f188b9bc6f2cf5b8ee5a912ef1aedd0eba4c","revisionTime": "2017-11-10T14:41:19Z"},{"checksumSHA1": "ck5uxoEeMDUL/QqPvGvBmcbsJzg=","path": "golang.org/x/sys/windows","revision": "bf42f188b9bc6f2cf5b8ee5a912ef1aedd0eba4c","revisionTime": "2017-11-10T14:41:19Z"}],"rootPath": "git.XXX.net/monitor/tap"
}
5、govendor --help
$ govendor --help
govendor (v1.0.9): record dependencies and copy into vendor folder-govendor-licenses Show govendor's licenses.-version Show govendor version-cpuprofile 'file' Writes a CPU profile to 'file' for debugging.-memprofile 'file' Writes a heap profile to 'file' for debugging.Sub-Commandsinit Create the "vendor" folder and the "vendor.json" file.list List and filter existing dependencies and packages.add Add packages from $GOPATH.update Update packages from $GOPATH.remove Remove packages from the vendor folder.status Lists any packages missing, out-of-date, or modified locally.fetch Add new or update vendor folder packages from remote repository.sync Pull packages into vendor folder from remote repository with revisionsfrom vendor.json file.migrate Move packages from a legacy tool to the vendor folder with metadata.get Like "go get" but copies dependencies into a "vendor" folder.license List discovered licenses for the given status or import paths.shell Run a "shell" to make multiple sub-commands more efficient for largeprojects.go tool commands that are wrapped:"+status" package selection may be used with themfmt, build, install, clean, test, vet, generate, toolStatus Types+local (l) packages in your project+external (e) referenced packages in GOPATH but not in current project+vendor (v) packages in the vendor folder+std (s) packages in the standard library+excluded (x) external packages explicitly excluded from vendoring+unused (u) packages in the vendor folder, but unused+missing (m) referenced packages but not found+program (p) package is a main package+outside +external +missing+all +all packagesStatus can be referenced by their initial letters.Package specifier<path>[::<origin>][{/...|/^}][@[<version-spec>]]Ignoring files with build tags, or excluding packages from being vendored:The "vendor.json" file contains a string field named "ignore".It may contain a space separated list of build tags to ignore whenlisting and copying files.This list may also contain package prefixes (containing a "/", possiblyas last character) to exclude when copying files in the vendor folder.If "foo/" appears in this field, then package "foo" and all its sub-packages("foo/bar", …) will be excluded (but package "bar/foo" will not).By default the init command adds the "test" tag to the ignore list.If using go1.5, ensure GO15VENDOREXPERIMENT=1 is set.
OK,结束,可以用git将vendor提交到代码库了。
本文参考:https://www.tuicool.com/articles/NjMzIbJ
使用godep管理Golang项目依赖
个人微信公众号:
作者:jiankunking 出处:http://blog.csdn.net/jiankunking
使用govendor管理Golang项目依赖相关推荐
- golang 依赖管理_简介:如何管理Golang项目依赖项
golang 依赖管理 by Ying Kit Yuen 英杰苑 简介:如何管理Golang项目依赖项 (An intro to dep: How to manage your Golang proj ...
- 使用maven管理Java项目依赖
概念 Maven是java的一个依赖管理工具.所谓依赖就是指在Java开发过程中引入的各种jar包和第三方库,而可能这些库本省还要引用其他的库,这样我们直接引用的称为直接依赖,库的依赖称为间接依赖.如 ...
- java maven 项目依赖管理 简介
目录 一.简单的小问题? 二.maven到底是什么? 三.maven的安装 四.仓库的概念 五.使用命令行管理maven项目 六.使用Myeclipse创建maven自定义项目 七.pom.xml的依 ...
- Composer - PHP 世界里用于管理项目依赖的工具
Composer - PHP 世界里用于管理项目依赖的工具 Composer v1.8 版本正式发布.Composer是 PHP 世界里用于管理项目依赖的工具. 如果你已经安装了 Composer , ...
- Maven项目依赖管理 学习笔记
本学习笔记根据慕课视频[Maven项目依赖管理]摘录,主要学习maven的使用方式,从理念到实践.基础到应用,掌握基于maven管理java项目的方式. 目录 第一章 Maven概述 Maven简介 ...
- Mac npm6.10.3包管理器下载依赖并运行项目的步骤
Mac npm包管理器下载依赖并运行项目的步骤 1.使用npm config get registry查看npm的仓库地址 2.使用npm config set registry https://re ...
- Gradle项目依赖管理
作者:黄少存,叩丁狼高级讲师.本文为原创文章,转载请注明出处. 上一篇咱们讲解了 Gradle 构建项目的生命周期,这一篇咱们来看下 Gradle 的另一个重要的知识点,就是依赖管理,那为什么需要依 ...
- 安装项目依赖包---基于Ant-Design-Pro-2-0-的CMS管理后台入门系列
安装项目依赖包 根据自身习惯的方式,自行选择使用 npm 或 yarn 进行安装依赖包. 注意:如果选择 npm 安装,后面的命令都是用 npm 命令,包括 npm start / npm build ...
- Maven项目依赖管理工具
学习教程: https://www.yiibai.com/maven/ Maven不仅可以管理jar包,还可以管理我们项目中对其他子模块的引用: mvn claen 在"target&quo ...
最新文章
- 【Binder 机制】AIDL 分析 ( AIDL 通信完整流程梳理 )
- oracle 查看索引类别以及查看索引字段被引用的字段方法
- java、前端、php、asp.net开发资源分享(视频教程,源码,项目)
- 基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多
- H.264编解码流程
- swiper监听滚动条_swiper Scrollbar滚动条组件详解
- 轻量应用服务器安装mysql_阿里云轻量应用服务器Linux-Centos7下MySQL8.0.19的安装
- (转)图文详解手把手教你在Windows环境下下载Android源码(Launcher为例)
- Suse Enterprise Server 11的安装
- 土壤因子-中国和世界土壤因子数据说明和下载链接
- 3dmax中如何导出多个动画
- javalinux服务器上写文件,java 读取linux服务器上文件
- w3c标准语言,W3C标准 - W3C中国
- 阿里巴巴服务器泡进“水里”液冷服务器技术
- DEDE源码分析与学习之三: member/archives_*.php文件解读
- 关系数据库规范化理论
- 面试,你准备好了吗(上集)
- 素描想要画出有质感的头发?方法找对了画技提升了~
- iOS开发-极光推送SDK使用笔记
- 齐振宏教授 变革领导力导师