查到的可能原因:
1.本地的go编译器版本
2. go module构建模式未开启
3. 是否在go.mod所在目录执行的go mod tidy
解析
一开始发布的时候 一开始go发布的时候是没有包管理的
go get命令会根据路径,把相应的模块获取并保存$GOPATH/src
也没有版本的概念,master
就代表稳定的版本
后来引进了Go Module 在GO1.11引入,不再是只有一个版本了,利用go.mod记录每个包的版本于是问题就来了
到底是按照$GOPATH的规则走还是按照Go Module来呢?
GO111MODULE是一个环境变量,用于改变go引入包的方式
Go1.11和Go1.12
- GO111MODULE=on
这个设置会强迫使用Go modules,即使项目在你的GOPATH里。需要go.mod才能工作。- GO111MOUDLE=off,使用GOPATH的方式,即使在GOPATH外边
- GO111MODULE=auto,默认设置。
当你不在GOPATH内的时候,