Golang 管理模块有两种模式:
- GOPATH Mode: go 从 vendor 和
$GOPATH下寻找依赖,不支持多版本。 - Module-Aware Mode: go 不再考虑 GOPATH,仅仅使用
$GOPATH/pkg/mod目录下的依赖,目录名包含版本号,所以支持多版本共存。
在 1.12 版本之前,使用 Go modules 之前需要环境变量 GO111MODULE:
GO111MODULE=off: 不使用 module-aware mode。GO111MODULE=on: 使用 module-aware mode,不会从环境变量GOPATH下面查找依赖包。GO111MODULE=auto或不设置GO111MODULE变量: Golang 自己检测是不是使用 Module-Aware Mode。