Go 1.11 之后官方支持的版本管理工具 mod。
mod 官方给出了三个命令 go help mod、go help modules、go help module-get 帮助了解使用。
开关模块支持
默认值是 auto。
GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。
GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。
修改模块支持
export GOPROXY=https://goproxy.io
export GO111MODULE=on
go mod 命令
- download download modules to local cache (下载依赖的module到本地cache【$GOPATH/go/pkg/mod/】))
- edit edit go.mod from tools or scripts (编辑go.mod文件)
- graph print module requirement graph (打印模块依赖图))
- init initialize new module in current directory (再当前文件夹下初始化一个新的module, 创建go.mod文件))
- tidy add missing and remove unused modules (增加丢失的module,去掉未用的module)
- vendor make vendored copy of dependencies (将依赖复制到vendor下)
- verify verify dependencies have expected content (校验依赖)
- why explain why packages or modules are needed (解释为什么需要依赖)
example
-v 参数打印详细模块信息
- go mod init 生成go.mod文件
- go mod tidy 添加缺失及移除不需要的模块,生成go.sum文件
- go mod verify 检查当前模块是否全部下载,且是否被修改。
- go mod verdor 生成verdor文件夹
显示Import库
go list -m -json all
- -json JSON格式显示
- all 显示全部库