我试图在intellij中设置GO模块,并试图导入GOPATH下的软件包。当我使用Go Modules时,似乎没有从GOPATH中“导入”软件包。关于我可能做错了什么的任何想法?
以下是屏幕截图。左图:GoModules,无法识别包。右图:简单的GO项目,可以识别软件包。
我尝试做同步包,没有运气。
Go版本-1.12.3
。
支持的两种模式(“ 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)。
为了进行更细粒度的控制,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)。