1、环境变量 GO111MODULE
go 通过环境变量 GO111MODULE 的 3 个值 off、on、auto 来决定是否使用 go mod. 这三个值影响分别如下:
- GO111MODULE=off:关闭 go modules 功能,在编译的时候仍旧在 $GOPATH/src 或者 vendor 目录中寻找依赖. 这种包管理模式为 "GOPATH 模式".
- GO111MODULE=on:开启 go modules 功能,在编译时不会在 GOPATH/src 目录,而是存放在 $GOPATH/pkg/mod 目录,多个项目可以共享缓存的 modules。
- GO111MODULE=auto:默认值,在 go v1.13 及之后版本中,如果工程目录下包含 go.mod 文件或者位于包含 go.mod 文件的目录下,则开启 go modules 功能. 在 go v1.11 中 auto 值需要工程在 GOPATH/src 之外的目录中才会开启 go mod,以确保兼容性.
2、go mod命令行
// 常用命令
go mod init // 初始化 go.mod,将开启 mod 使用
go mod tidy // 添加或者删除 modules,取决于依赖的引用
go mod vendor // 复制依赖到 vendor 目录下
// 其它命令
go mod download // 下载 module 到本地
go mod edit // 编辑 go.mod
go mod graph // 打印 modules 依赖图
go mod verify // 验证依赖
go mod why // 解释依赖使用