GoLand中报错package xxx is not in GOROOT

问题

我在导入gopath目录下的包时报错“package xxx is not in GOROOT“,编译器没有去gopath下找包,查了一下原因是GO111MODULE没有关, gomod 和 gopath 两个包管理方案,并且相互不兼容,在 gopath 查找包,按照 goroot 和多 gopath 目录下 src/xxx 依次查找。在 gomod 下查找包,解析 go.mod 文件查找包,mod 包名就是包的前缀,里面的目录就后续路径了。在 gomod 模式下,查找包就不会去 gopath 查找,只是 gomod 包缓存在 gopath/pkg/mod 里面。

解决方法

把GO111MODULE置为off就行了。

go env -w GO111MODULE=off

版权声明:本文为THEGREATHXY原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。