英文:
VSCode keeps trying to use GOROOT despite being a go module
问题
我创建了一个新的Go项目,并尝试使用VSCode。在父目录中,我有一个名为go.mod
的文件,内容如下:
module main
go 1.19
我使用Bazel和Gazelle创建了这个项目,并且可以在终端中成功构建和运行一个简单的“hello world”程序,该程序从项目的子目录中导入,使用命令bazel run //src/server:main
。
然而,VSCode似乎无法理解这一切。我已经安装了Bazel和Go插件。我的VSCode给我一个导入错误,错误信息如下:
could not import src/server/models (no required module provides package "src/server/models")
当我保存更改时,VSCode尝试自动编译,但是IDE的“输出”窗口给我以下错误信息:
/Project/path/.../src/server/main.go:6:2 package src/server/models is not in GOROOT (/opt/homebrew/Cellar/go/1.19.4/libexec/src/src/server/models)
为什么它要使用GOROOT?为什么它不能与Bazel基础设施配合使用?
英文:
I've created a new Go project and am trying to use VSCode. I have a go.mod
in the parent directory with the following:
module main
go 1.19
I created the project with Bazel and Gazelle, and can successfully build and run a simple "hello world" in my Terminal that imports from subdirectories in the project using the command bazel run //src/server:main
.
However, VSCode doesnt seem to understand any of this. I have Bazel and Go plugins installed. My VSCode gives me an import error that says
could not import src/server/models (no required module provides package "src/server/models")
And when i save my changes, VSCode tries to auto-compile and the IDE "Output" gives me the following error
/Project/path/.../src/server/main.go:6:2 package src/server/models is not in GOROOT (/opt/homebrew/Cellar/go/1.19.4/libexec/src/src/server/models)
Why in the world is it trying to use GOROOT? And why is it not working with the Bazel infrastructure?
答案1
得分: 1
不知道是怎么发生的,但现在事情正常了。
- 恢复所有默认的 GO VSCode 设置(我觉得这不是原因)。
- 项目结构有代码更改(我觉得这是原因)。
项目
| 工作区
| 构建
| src
| go.mod (module src go 1.19)
| BUILD (# gazelle:prefix src) <-- 这是文件中唯一的一行
| server
| main.go <-- 这里的导入最终修复了
| BUILD
| models
| BUILD
| models.go
英文:
No idea how this happened but things are working now.
- Reverted to all default GO VSCode settings (dont think this was it)
- Project structure with code changes (i think this was it)
project
| WORKSPACE
| BUILD
| src
| go.mod (module src go 1.19)
| BUILD (# gazelle:prefix src) <-- this is the only line in this file
| server
| main.go <-- imports here finally fixed
| BUILD
| models
| BUILD
| models.go
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论