govendor 操作

go依赖管理-govendor

Golang 官方并没有推荐最佳的包管理方案。到了1.5版本时代,官方引入包管理的设计,加了 vendor 目录来支持本地包管理依赖。官方 wiki 推荐了多种支持这种特性的包管理工具,如:Godep、gv、gvt、glide、govendor等。
  govendor该工具将项目依赖的外部包拷贝到项目下的 vendor 目录下,并通过 vendor.json 文件来记录依赖包的版本,方便用户使用相对稳定的依赖。
对于 govendor 来说,依赖包主要有以下多种类型:

状态 缩写状态 含义

+local l 本地包,即项目自身的包组织
+external e 外部包,即被 $GOPATH 管理,但不在 vendor 目录下
+vendor v 已被 govendor 管理,即在 vendor 目录下
+std s 标准库中的包
+unused u 未使用的包,即包在 vendor 目录下,但项目并没有用到
+missing m 代码引用了依赖包,但该包并没有找到
+program p 主程序包,意味着可以编译为执行文件
+outside 外部包和缺失的包
+all 所有的包

安装

编译一个govendor

go get -u github.com/kardianos/govendor
The project must be within a $GOPATH/src

Quick Start

设置你的工程

cd “my project in GOPATH”
govendor init

加入存在的 GOPATH 文件到vendor.

govendor add +external

查看你的vendor 列表

govendor list

Look at what is using a package

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
3.3 Sub-commands

init 创建 vendor 文件夹和 vendor.json 文件
list 列出已经存在的依赖包
add 从 $GOPATH 中添加依赖包,会加到 vendor.json
update 从 $GOPATH 升级依赖包
remove 从 vendor 文件夹删除依赖
status 列出本地丢失的、过期的和修改的package
fetch 从远端库增加新的,或者更新 vendor 文件中的依赖包
sync Pull packages into vendor folder from remote repository with revisions
migrate Move packages from a legacy tool to the vendor folder with metadata.
get 类似 go get,但是会把依赖包拷贝到 vendor 目录
license List discovered licenses for the given status or import paths.
shell Run a “shell” to make multiple sub-commands more efficient for large projects.

go tool commands that are wrapped:
+<status> package selection may be used with them
fmt, build, install, clean, test, vet, generate, tool

http://www.wuecho.com/

猜你喜欢

转载自blog.csdn.net/java_sparrow/article/details/104014504