为什么运行GoLand终端的go env和系统终端不一样

Why running go env in GoLand's terminal is different from system terminal

GoLand终端输出:

go env在OS终端的输出:

GoLand 管理一些环境变量和设置并覆盖系统中的配置,以便它可以在内置终端中的 运行 代码或使用编辑器本身时创建可重现的环境。

从图像中可以看出,GOFLAGSGOPROXYGOMOD.

之间存在一些差异

如果我理解正确,您需要通过 Preferences | Go | Go Modules (vgo) 启用 Go Modules 支持并启用 Go Modules 集成。执行此操作后,您会看到 GOFLAGS 值将发生变化。

您还可以设置 Proxy 字段值来配置 GOPROXY 环境变量。

GOMOD 差异来自您调用 go env 命令的目录,因为在本例中它们似乎是不同的目录。在 IDE 终端和 OS 终端的同一目录中调用该命令,您将看到相同的值。它指示当前命令中使用了哪个 go.mod 文件(如果有)。

最后,我建议升级到 GoLand 2019.3,因为它会在检测到项目是在包含 go.mod 文件的目录中创建时自动启用 Go Modules 支持。