Goland 无法使用 Go 1.14 识别我的 vendor 目录

标签 go goland go-modules

当我打开我的 Goland 项目时,会运行以下命令:

/usr/local/Cellar/go/1.14/libexec/bin/go list -m -json all #gosetup

它的输出是以下错误:
go list -m: can't compute 'all' using the vendor directory
    (Use -mod=mod or -mod=readonly to bypass.)

Goland 无法解析我正在导入的包。
当我从命令行构建和运行项目时,它工作正常。

我的项目结构如下:
app/
    bin/
    pkg/
    src/
        app/
            cmd/
            vendor/
            go.mod

我的 GOROOT/usr/local/Cellar/go/1.14/libexec和我的GOPATHapp/ .

在 Goland 设置中,在 Go/GOPATH 下已选中“使用系统环境中定义的 GOPATH”和“索引整个 GOPATH”的复选框。

在 Go/Go 模块 (vgo) 下,我检查了“启用 Go 模块 (vgo) 集成”和“vendor 模式”

当我更改 GOPATH 时,我刚刚注意到至/Users/myname/sdk/go1.13.4 , 问题已经解决了。这可能是 Homebrew 的问题还是我不​​知道的 go 1.14 引入的更改?

我在描述这个问题时很详尽,因为我不熟悉 Go,可能会遗漏一些明显的东西。
谢谢!

最佳答案

由于 Go 1.14 中的工具更改,这是 Go 模块和 vendor 支持的一个已知问题。

因此,请尝试使用 EAP 版本的 IDE,https://jetbrains.com/go/nextversion ,其中包含对此的修复。

我们在 https://youtrack.jetbrains.com/issue/GO-8855 下跟踪此问题并考虑将其反向移植到 2019.3 发布周期。

关于Goland 无法使用 Go 1.14 识别我的 vendor 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60413697/

相关文章:

concurrency - 重用 Go channel 会导致死锁

go - goland 重新格式化快捷方式(ctrl+alt+L) 和 go fmt 有什么区别?

go - 如何在 GoLand 的虚拟环境中运行 file watcher?

go - Golang 模块可以在 master 以外的分支上使用吗?

go - 当没有 channel 准备好被读取时如何什么都不做?

go - 在golang中从接口(interface)创建类型变量

Goland无法将字符串类型的表达式转换为类型[]byte

go - 停止 go mod 工具解析某些目录

go - 在 monorepo 环境中发布 go 模块

Golang HTTP 服务器等待数据发送给客户端