小编典典

Go模块无法识别GOPATH下的文件

go

我试图在intellij中设置GO模块,并试图导入GOPATH下的软件包。当我使用Go
Modules时,似乎没有从GOPATH中“导入”软件包。关于我可能做错了什么的任何想法?

以下是屏幕截图。左图:GoModules,无法识别包。右图:简单的GO项目,可以识别软件包。

我尝试做同步包,没有运气。

Go版本-1.12.3

Initellij_GO_MOD


阅读 139

收藏
2020-07-02

共1个答案

小编典典

支持的两种模式(“ 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)。

2020-07-02