1

当使用带有 Go 插件的 IntelliJ IDEA 或 GoLand 并使用 Go 1.11 或更高版本时,您可以通过转到 Preferences -> Languages & Frameworks -> Go -> Go Modules (vgo) 并选中“Enable Go Modules”框来启用 Go 模块(vgo) 整合”。

当您有一个由 正确初始化的项目go mod init,因此有一个go.modgo.sum文件时,它将在使用go build或从 IntelliJ 的命令行构建时通过按下绿色播放图标下载依赖项。

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

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

4

1 回答 1

3

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

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

  1. 进入 Preferences -> Languages & Frameworks -> Go -> Go Modules (vgo) 并确保未选中“供应商模式”框。
  2. 确保您的 IntelliJ 项目中有一个名为“vendor”的文件夹。现在可以安全地选中“供应商模式”框。

使用第一种方法,go.mod可能会重新下载文件中定义的依赖项,例如,当 go 项目从这些依赖项不在本地包注册表中的地方运行时。

使用第二种方法,依赖项放在“供应商”文件夹中,不一定需要重新下载,它们是项目的一部分。

于 2019-07-20T20:08:50.250 回答