1

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

下面是一个截图。左图:GoModules,它不识别包。右图:识别包的简单 GO 项目。

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

转到版本 - 1.12.3

Initellij_GO_MOD.

4

2 回答 2

6

两种支持的模式(“GOPATH 模式”和“模块感知模式”)是互斥模式。这意味着你不能同时拥有这两者,你不能混合使用模块和 GOPATH。

引用命令 go: 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)。

如果您希望使用位于磁盘上的软件包,请参阅如何在另一个模块中使用“GOPATH”之外的模块?

于 2019-04-12T11:27:34.880 回答
0

我遇到了这个问题,我对每个项目都使用了这个设置,它解决了我的问题。 在此处输入图像描述

但我仍在寻找全局 GO 模块配置。

于 2021-05-05T08:30:39.083 回答