Go Modules介绍
Go Modules官方介绍:https://github.com/golang/go/wiki/Modules#semantic-import-versioning
Go Modules是Go语言中正式官宣的项目依赖解决方案,Go modules(前身vgo)于Go1.11版本正式发布,在Go1.14版本以后建议用在生产上,Go官方也鼓励用户从其他依赖管理工具迁移到Go modules
Go Modules使用
Go modules使用的前提是Go JDK版本必须在1.11及以上版本,最好是1.13或以上
一、 Go modules相关的命令
go help mod我们可以看到go mod的使用及参数
go mod参数命令
go mod download 下载 go.mod 文件中指明的所有依赖
go mod edit 编辑 go.mod 文件
go mod graph 查看现有的依赖结构
go mod init 生成 go.mod 文件
go mod tidy 整理现有的依赖,无用的依赖包会被删除,没有的依赖会自动下载
go mod vendor 导出项目所有的依赖到vendor目录
go mod verify 校验一个模块是否被篡改过
go mod why 查看为什么需要依赖某模块
其他相关的指令
go list -m all 查看直接或间接依赖的模块的最终版本信息
go list -u -m all 查看直接或间接依赖的模块及可升级的模块
Go modules相关的环境变量
> go env
GO111MODULE="auto"
GOPROXY="https://proxy.golang.org,direct"
GONOPROXY=""
GOSUMDB="sum.golang.org"
GONOSUMDB=""
GOPRIVATE=""
......
GO111MODULE
Go语言提供了 GO111MODULE 这个环境变量来作为 Go modules 的开关,其允许设置以下参数:
auto:只要项目包含了 go.mod 文件的话启用 Go modules,目前在 Go1.11 至 Go1.14 中仍然是默认值。
on:启用 Go modules,推荐设置,将会是未来版本中的默认值。