Golang Go语言中 Goland 打开项目报错(执行 go list 报错)
背景
使用 Goland 打开新项目(higress-standalone)报错,原因是自动执行了 go list -m -json all
➜ apiserver git:(main) ✗ go list -m -json all
go: istio.io/[email protected]: reading
https://goproxy.cn/istio.io/istio/@v/v0.0.0.info: 404 Not Found
server response: not found: istio.io/[email protected]: invalid version: unknown revision v0.0.0
分析
依赖了 Higress
项目,然后 Higress
的 go.mod
中依赖了 [email protected]
, 并 replace
到本地本地目录, ./external
是需要额外执行命令生成的目录
// higress => go.mod
…
require istio.io/istio v0.0.0
…
replace istio.io/istio => ./external/istio
…
总结
怀疑 go list
解析的时候找不到 external
目录导致报错,有啥解决方法吗
此外还有个疑问:
- Goland 可以修改 go list 执行参数吗,测试发现
go list -json all
命令执行正常
Golang Go语言中 Goland 打开项目报错(执行 go list 报错)
更多关于Golang Go语言中 Goland 打开项目报错(执行 go list 报错)的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
更新:
repalce 到本地的 higress 项目(带 external 目录) 也是报错,在 higress 本地执行 go list 不报错
更多关于Golang Go语言中 Goland 打开项目报错(执行 go list 报错)的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
更新:
repalce 到本地的 higress 项目并修改其 go.mod<br>diff --git a/go.mod b/go.mod<br>index 9aa6ada..cd4ce0f 100644<br>--- a/go.mod<br>+++ b/go.mod<br>@@ -38,7 +38,7 @@ require (<br> <a target="_blank" href="http://istio.io/api" rel="nofollow noopener">istio.io/api</a> v0.0.0-20211122181927-8da52c66ff23<br> <a target="_blank" href="http://istio.io/client-go" rel="nofollow noopener">istio.io/client-go</a> v1.12.0-rc.1.0.20211118171212-b744b6f111e4<br> <a target="_blank" href="http://istio.io/gogo-genproto" rel="nofollow noopener">istio.io/gogo-genproto</a> v0.0.0-20211115195057-0e34bdd2be67<br>- <a target="_blank" href="http://istio.io/istio" rel="nofollow noopener">istio.io/istio</a> v0.0.0<br>+ <a target="_blank" href="http://istio.io/istio" rel="nofollow noopener">istio.io/istio</a> v0.0.0-20230729021048-781316393709<br> <a target="_blank" href="http://istio.io/pkg" rel="nofollow noopener">istio.io/pkg</a> v0.0.0-20211115195056-e379f31ee62a<br> <a target="_blank" href="http://k8s.io/api" rel="nofollow noopener">k8s.io/api</a> v0.22.2<br> <a target="_blank" href="http://k8s.io/apimachinery" rel="nofollow noopener">k8s.io/apimachinery</a> v0.22.2<br><br>
这个好像就是有问题,可能需要 fork 自己改一下了
阿里的开源就是这样子的,上次我用 datax 也是各种问题;说白了就是借开源打广告
在使用 GoLand 打开 Go 语言项目时遇到 go list
报错的问题,通常可能由以下几个原因引起:
-
GOPATH 或 GOMODULE 设置不当:
- 确保你的
GOPATH
环境变量设置正确,且项目位于GOPATH
下的src
目录,或者你正在使用 Go Modules(GO111MODULE=on
)。 - 检查项目根目录下是否存在
go.mod
文件,以确认是否在使用 Go Modules。
- 确保你的
-
依赖管理问题:
- 如果项目依赖未正确初始化或更新,可能会导致
go list
失败。尝试在项目根目录下运行go mod tidy
来清理未使用的依赖,并添加缺失的依赖。 - 确认所有依赖的 Go 版本与你的开发环境相匹配。
- 如果项目依赖未正确初始化或更新,可能会导致
-
IDE 配置问题:
- 检查 GoLand 的配置,确保它使用正确的 Go SDK 版本。可以在 Settings/Preferences -> Go -> SDKs 中检查和配置。
- 有时候,重启 GoLand 或清除其缓存(File -> Invalidate Caches / Restart…)可以解决一些奇怪的错误。
-
环境变量和路径问题:
- 确保系统的 PATH 环境变量包含了 Go 的安装路径。
- 如果你在特定操作系统(如 Windows)上遇到权限问题,尝试以管理员身份运行 GoLand。
如果上述步骤仍然无法解决问题,建议查看具体的错误信息或日志,以获取更详细的故障排查线索。同时,也可以考虑在 Go 社区论坛或 Stack Overflow 等平台寻求帮助。