导入模块位于 Goland 的子文件夹中 IDE

Import module located in sub folder in Goland IDE

如何让 Goland 正确检查我的 go.mod 并且不报告我在主项目的子目录中维护的模块的“缺少依赖项”错误?

我正在尝试遵循 hashicorp's vault project 中的模式,其中我在子文件夹中维护一个 api 模块(其他人可以导入该模块,而无需拖入我的主项目使用的所有 deps .) 就像在保险库中一样,我在主项目的 go.mod 中通过 url 引用 api 模块,并用指向相对路径位置的 replace 覆盖它。

module github.com/hashicorp/vault

go 1.16

replace github.com/hashicorp/vault/api => ./api

// ...
require (
    // ...
    github.com/hashicorp/vault/api v1.0.5-0.20210210214158-405eced08457
    // ...
)

从构建角度(以及源代码中的依赖项解析)来看,所有这一切都按预期工作,但是 Goland 在我的主项目 go.mod 中以红色突出显示导入语句和替换语句(错误是“缺少依赖”)。红色灯泡提示我已尝试“同步依赖项”,但在“成功完成”消息后,错误仍然存​​在。

我正在使用 Goland 2020.3.5 并转到 1.16.3。我的项目在我的 GOPATH 之外,我在 Goland 设置菜单中启用了 go 模块。

重申一下,一切构建正确,但是我的 go.mod 的 linting 就像缺少依赖项错误一样。

升级到最新版本的 Goland (2021.1.3) 解决了这个问题。 谢谢@s0xzwasd!