ubuntu下Go Mod和Go Vendor命令

go-mod

go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具

要启用go module支持首先要设置环境变量GO111MODULE,通过它可以开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是auto。

GO111MODULE=off禁用模块支持,编译时会从GOPATH和vendor文件夹中查找包。
GO111MODULE=on启用模块支持,编译时会忽略GOPATH和vendor文件夹,只根据 go.mod下载依赖。
GO111MODULE=auto,当项目在$GOPATH/src外且项目根目录有go.mod文件时,开启模块支持。

# 启用 Go Modules 功能
export GO111MODULE=on

常用的go mod命令如下:

go mod download    下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
go mod edit        编辑go.mod文件
go mod graph       打印模块依赖图
go mod init        初始化当前文件夹, 创建go.mod文件
go mod tidy        增加缺少的module,删除无用的module
go mod vendor      将依赖复制到vendor下
go mod verify      校验依赖
go mod why         解释为什么需要依赖

Go Vendor

安装go get -u github.com/kardianos/govendor

基础命令

govendor init # 创建vendor目录,创建vendor.json文件  
govendor add +external #生成依赖包  
govendor update +vendor # 更新vendor的包命令

init 	初始化 vendor 目录
list 	列出所有的依赖包
add 	添加包到 vendor 目录,如 govendor add +external 添加所有外部包
add PKG_PATH 	添加指定的依赖包到 vendor 目录
update 	从 $GOPATH 更新依赖包到 vendor 目录
remove 	从 vendor 管理中删除依赖
status 	列出所有缺失、过期和修改过的包
fetch 	添加或更新包到本地 vendor 目录
sync 	本地存在 vendor.json 时候拉去依赖包,匹配所记录的版本
get 	类似 go get 目录,拉取依赖包到 vendor 目录

gopm使用

参考博文