go modules 和 GOPATH 是互斥的, goland 如果设置了 GOPATH 就不能使用 go module
否则会报以下错误信息
1 |
|
并且也不支持 go get pkg@vx.x.x 的形式, 只能使用 go get pkg, 而不能指定版本信息,否则会报一下错误信息
1 |
|
所以只有关闭 GOPATH 才能使用 go module,关闭 GOPATH 就是当前所处的目录不在 GOPATH 目录下即可, 可以不设置 GOAPTH 也可以把 GOPATH 设置到一个外部目录专门作为缓存包的路径,这样 go module 的目录即为 $GOAPTH/
但是我认为最好是使用默认的 go modules 路径是 ~/go
, 而如果设置了 GOPATH
关于 GO111MODULE 环境变量
-
默认 GO111MODULE = auto 在 GOPATH 路径下会从 GOPATH 或者 vendor 中寻找依赖包,在外部会使用 go module 的方式寻找依赖包
-
GO111MODULE = on 只会使用 go module 的方式寻找依赖包 这里我们设置GO111MODULE 为on 并且在gopath路径外创建一个工程
参考文章: