今天下载b站的kratos 框架,按照教程执行了
GO111MODULE=on && go get -u github.com/go-kratos/kratos/tool/kratos
结果在gopath/src下找不到kratos代码,执行go get命令中途也没有报错,后来使用文件搜索在gopath/pkg/mod才找到了。
于是网上一查,当modules 功能启用时,依赖包的存放位置变更为$GOPATH/pkg
,允许同一个package多个版本并存,且多个项目可以共享缓存的 module。
GO111MODULE
GO111MODULE
有三个值:off
, on
和auto(默认值)
。
GO111MODULE=off
,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。GO111MODULE=on
,go命令行会使用modules,而一点也不会去GOPATH目录下查找。-
GO111MODULE=auto
,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:- 当前目录在GOPATH/src之外且该目录包含go.mod文件
- 当前文件在包含go.mod文件的目录下面。
goland不识别mod中的包