为了解决 GOPATH 的问题,官方在 1.11 开始推出了Go Modules的功能,将第三方库储存在本地的空间,并且给程序去引用。
首先要设定GO111MODULE
环境变量,总共可以三种不同的值:
- auto go命令会根据当前目录来决定是否启用modules功能。 需要满足两种情形:
- 该项目目录不在
GOPATH/src/
下 - 当前或上一层目录存在
go.mod
- on
Go 1.16.6 的默认值,go命令会使用modules,而不会GOPATH目录下查找。 - off
go命令将不会支持module功能,寻找套件如以前GOPATH的做法去寻找。
官方与实践都推荐采用 Go Modules 的做法,不再使用 GOPATH 的功能了,因此将其设定为on。
Go Modules 方式下载下来的第三方库位在 GOPATH/pkg/mod
文件夹里面。