在 IntelliJ 中,即使启用了 go 模块集成,导入也不会加载

In IntelliJ imports are not loading, even though go modules integration is enabled

当使用带有 Go 插件的 IntelliJ IDEA 或 GoLand 并使用 Go 1.11 或更新版本时,您可以通过转到首选项 -> 语言和框架 -> Go -> Go 模块 (vgo) 启用 Go 模块并检查盒子 'Enable Go Modules (vgo) integration'.

如果您有一个由 go mod init 正确初始化的项目,因此有一个 go.modgo.sum 文件,它会在使用 go build 或从 IntelliJ 按绿色播放图标。

但是,远程依赖项的导入语句可能仍然是红色的,即使它们似乎已经下载并出现在 go.mod 文件中。

奇怪的是,go 项目实际上 运行 来自命令行,而不是来自 IntelliJ。为什么会这样,我该如何解决?

此方法不起作用的原因与 IntelliJ 中的配置有关。这就是为什么它可以从命令行运行,而不是在 IntelliJ 中运行。

有两种方法可以解决这个问题:

  1. 进入首选项 -> 语言和框架 -> Go -> Go 模块 (vgo) 并确保框 'Vendoring mode' 未选中。
  2. 确保您的 IntelliJ 项目中有一个名为 'vendor' 的文件夹。现在可以安全地选中框 'Vendoring mode'。

使用第一种方法,您的 go.mod 文件中定义的依赖项可能是 re-downloaded,例如当 go 项目 运行 来自这些依赖项不在本地包注册表。

使用第二种方法,依赖项放在 'vendor' 文件夹中,不一定需要 re-downloaded,它们是项目的一部分。