为了解决 GOPATH 的问题,官方在 1.11 开始推出了Go Modules的功能,将第三方库储存在本地的空间,并且给程序去引用。

首先要设定​​GO111MODULE​​环境变量,总共可以三种不同的值:

  1. auto go命令会根据当前目录来决定是否启用modules功能。 需要满足两种情形:
  1. 该项目目录不在​​GOPATH/src/​​下
  2. 当前或上一层目录存在​​go.mod​
  1. on
    Go 1.16.6 的默认值,go命令会使用modules,而不会GOPATH目录下查找。
  2. off
    go命令将不会支持module功能,寻找套件如以前GOPATH的做法去寻找。

官方与实践都推荐采用 Go Modules 的做法,不再使用 GOPATH 的功能了,因此将其设定为on。

Go Modules 方式下载下来的第三方库位在 ​​GOPATH/pkg/mod​​ 文件夹里面。