在 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.mod
和 go.sum
文件,它会在使用 go build
或从 IntelliJ 按绿色播放图标。
但是,远程依赖项的导入语句可能仍然是红色的,即使它们似乎已经下载并出现在 go.mod
文件中。
奇怪的是,go 项目实际上 运行 来自命令行,而不是来自 IntelliJ。为什么会这样,我该如何解决?
此方法不起作用的原因与 IntelliJ 中的配置有关。这就是为什么它可以从命令行运行,而不是在 IntelliJ 中运行。
有两种方法可以解决这个问题:
- 进入首选项 -> 语言和框架 -> Go -> Go 模块 (vgo) 并确保框 'Vendoring mode' 未选中。
- 确保您的 IntelliJ 项目中有一个名为 'vendor' 的文件夹。现在可以安全地选中框 'Vendoring mode'。
使用第一种方法,您的 go.mod
文件中定义的依赖项可能是 re-downloaded,例如当 go 项目 运行 来自这些依赖项不在本地包注册表。
使用第二种方法,依赖项放在 'vendor' 文件夹中,不一定需要 re-downloaded,它们是项目的一部分。
当使用带有 Go 插件的 IntelliJ IDEA 或 GoLand 并使用 Go 1.11 或更新版本时,您可以通过转到首选项 -> 语言和框架 -> Go -> Go 模块 (vgo) 启用 Go 模块并检查盒子 'Enable Go Modules (vgo) integration'.
如果您有一个由 go mod init
正确初始化的项目,因此有一个 go.mod
和 go.sum
文件,它会在使用 go build
或从 IntelliJ 按绿色播放图标。
但是,远程依赖项的导入语句可能仍然是红色的,即使它们似乎已经下载并出现在 go.mod
文件中。
奇怪的是,go 项目实际上 运行 来自命令行,而不是来自 IntelliJ。为什么会这样,我该如何解决?
此方法不起作用的原因与 IntelliJ 中的配置有关。这就是为什么它可以从命令行运行,而不是在 IntelliJ 中运行。
有两种方法可以解决这个问题:
- 进入首选项 -> 语言和框架 -> Go -> Go 模块 (vgo) 并确保框 'Vendoring mode' 未选中。
- 确保您的 IntelliJ 项目中有一个名为 'vendor' 的文件夹。现在可以安全地选中框 'Vendoring mode'。
使用第一种方法,您的 go.mod
文件中定义的依赖项可能是 re-downloaded,例如当 go 项目 运行 来自这些依赖项不在本地包注册表。
使用第二种方法,依赖项放在 'vendor' 文件夹中,不一定需要 re-downloaded,它们是项目的一部分。