我正在尝试通过 kubebuilder 教程,并将现有项目导入到 GoLand。
使用 kubebuilder 自动生成的脚手架代码,以及使用 go mod 自动下载的 pkg 为我解决问题。我在使用命令行环境时没有遇到任何问题,但事实证明,在使用 GoLand 打开项目后,IDE 无法解析导入的包名称,这意味着它无法检测或链接 go mod 安装的包。
我从 IDE 首选项中启用了 go mod(with vendoring) 和 dep,正确设置了 GOPATH 和 Go 运行时,但错误不断出现。
我不知道为什么我会收到这个错误,以及如何解决它。
+) 工作目录是$GOPATH/src/example,所有的逻辑和设置都放在这个目录下。安装的依赖项放在 $GOPATH/pkg/mod 下。
最佳答案
I enabled go mod(with vendoring) and dep both from IDE preferences, set GOPATH and GOROOT properly, but the error keeps to appear.
假设您的机器上有以下设置:
/usr/lib/go
下/home/florin/go
demobuilder
在 /home/florin/projects/demobuilder
下创建.对于 Go Modules 项目,我建议这样做,而不是像您一样使用 GOPATH,因为它们在 GOPATH 中的行为方式不同。 首先,确保您拥有 GoLand 2019.3.1 或更高版本。
然后,在创建
demobuilder
之后项目,启动 GoLand,然后点击 Open Project
按钮。当项目打开时,如果你还没有配置,IDE 会询问你 Go SDK 的配置,也就是 GOROOT。它将是编辑器顶部的黄色条。单击右侧的链接进行配置。可以选择本地安装,指向
/usr/local/go
.如果您没有安装 Go,您也可以将其下载到您选择的目录中。然后,IDE 应该会自动注意到该项目是基于 Go Modules 的项目并启用对它们的支持。如果不是,请转到
Settings/Preferences | Go | Go Modules
并启用它。不要同时启用 Go Modules 和 dep 支持。如果您这样做了,请禁用 dep 集成并重试。您可以在 the help page 中看到所有这些.
关于go - 如何让我的 GoLand 检测 $GOPATH/pkg/mod 下的依赖包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59961858/