Go包管理工具govendor

前言

在用Go做项目的时候,难免会使用到第三方库;我们使用go get 下载第三方库都是在$GOPATH/src下,如果我们有多个项目,对于第三方库有不同版本要求,这样就存在问题,管理起来很混乱,所以我们需要一个包管理工具。

下载

go get -u -v github.com/kardianos/govendor

快速使用

# 初始化vendor目录
cd "my project in GOPATH"
govendor init

# 将项目用到GOPATH依赖包添加到vendor
govendor add +external

# 列出并筛选现有的依赖项和包
govendor list

# 查看那些包使用了该包
govendor list -v fmt

# 获取特定版本或修订
govendor fetch golang.org/x/net/context@a4bbce9fcae005b22ae5443f6af064d80a6f5a55
govendor fetch golang.org/x/net/context@v1   # Get latest v1.*.* tag or branch.
govendor fetch golang.org/x/net/context@=v1  # Get the tag or branch named "v1".

# 在给定任何先前版本约束的情况下,将包更新为最新版本
govendor fetch golang.org/x/net/context

# 仅格式化存储库
govendor fmt +local

# 仅在存储库中构建所有内容
govendor install +local

# 仅测试存储库
govendor test +local

 

子命令

init     创建"vendor"文件夹和"vendor.json"文件.
list     列出并筛选现有的依赖项和包
add      添加$GOPATH中包到"vendor"文件夹.
update   更新"vendor"文件夹中包来自$GOPATH.
remove   从"vendor"文件夹中移除包.
status   列出本地丢失、过期或修改的任何包.
fetch    添加或更新"vendor"文件夹下的包来自远程仓库.
sync     基于"vendor.json"文件,从远程仓库拉去带有修订版本的包到"vendor"文件夹中.
get      类似"go get"但复制依赖文件"vendor"文件夹中.
license  列出给定状态或导入路径的已发现许可证.

状态

命令缩写含义
+locall本地包,即项目自身的包组织
+externale外部包,即被$GOPATH管理,但不在"vendor"目录下
+vendorv被govendor管理,即在“vendor”文件夹中的包
+stds标准库中的包
+unusedu未使用的包,即包在"vendor"目录下,但项目没有使用
+missingm项目引用包,但该包没有找到
+programp主程序包,意味着可以编译执行的包
+outside 外部包和缺失包
+all 所有包

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值