英文:
Import module located in sub folder in Goland IDE
问题
如何让Goland正确地对我的go.mod
进行lint,并且不报告我在主项目的子目录中维护的模块的"missing dependency"错误?
我试图遵循hashicorp的vault项目中的模式,其中我在一个子文件夹中维护一个api
模块(可以被其他人导入,而不会引入主项目使用的所有依赖项)。就像在vault中一样,我在主项目的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
中将导入语句和replace语句都标记为红色(错误为"missing dependency")。红色的灯泡建议我"Sync Dependencies",我已经尝试过,但是在收到"Finished Successfully"的消息后,错误仍然存在。
我正在使用Goland 2020.3.5和go 1.16.3。我的项目位于GOPATH之外,并且在Goland的设置菜单中启用了go模块。
再次强调,一切都可以正确构建,但是我的go.mod的linting表现得好像有一个缺少的依赖项错误。
英文:
How can I get Goland to lint my go.mod
correctly and not report "missing dependency" errors for a module I am maintaining in a sub directory of my main project?
I'm trying to follow the pattern in hashicorp's vault project where I maintain an api
module in a sub folder (that can be imported by others without dragging in all deps used by my main project.) Just like in vault, I reference the api module by url in my main project's go.mod
and override it with a replace
pointing to the relative path location.
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
// ...
)
All this works as expected from a build perspective (and dependency resolution within the source code), however Goland is highlighting both the import statement and the replace statement in my main project's go.mod
in red (the error is "missing dependency"). The red lightbulb suggests I "Sync Dependencies" which i have tried, but after a "Finished Successfully" message, the error remains.
I am using Goland 2020.3.5 and go 1.16.3. My project is outside of my GOPATH and I have go modules enabled in the Goland settings menu.
Just to reiterate, everything builds correctly, however the linting for my go.mod acts like there is a missing dependency error.
答案1
得分: 2
升级到最新版本的Goland(2021.1.3)解决了这个问题。
感谢 @s0xzwasd!
英文:
Upgrading to the latest version of Goland (2021.1.3) solved the issue.
Thanks @s0xzwasd !
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论