支持的两种模式(“ GOPATH模式”和“模块感知模式”)是互斥模式。这意味着您不能同时拥有模块和GOPATH。
从引用命令去:GOPATH和模块:
使用模块时,GOPATH不再用于解析导入。 但是,它仍用于存储下载的源代码(在GOPATH / pkg /
mod中)和已编译的命令(在GOPATH / bin中)。
还有Command go:初步模块支持:
为了进行更细粒度的控制,Go
1.11中的模块支持使用一个临时环境变量GO111MODULE,可以将其设置为三个字符串值之一:off,on或auto(默认值)。如果GO111MODULE
= off,那么go命令将永远不使用新的模块支持。相反,它在供应商目录和GOPATH中查找依赖关系。我们现在将此称为“
GOPATH模式”。如果GO111MODULE =
on,则go命令需要使用模块,从不咨询GOPATH。我们将其称为命令可识别模块或在“模块可识别模式”下运行。如果GO111MODULE =
auto或未设置,则go命令根据当前目录启用或禁用模块支持。仅当当前目录在GOPATH /
src之外并且本身包含go.mod文件或在包含go的目录下时,才启用模块支持。在模块感知模式下,GOPATH不再定义构建过程中导入的含义 ,但仍存储下载的依赖项(在GOPATH / pkg /
mod中)和已安装的命令(在GOPATH / bin中,除非设置了GOBIN)。



