Goland 无法使用 Go 1.14 识别我的供应商目录

You*_*cha 9 go goland go-modules

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

/usr/local/Cellar/go/1.14/libexec/bin/go list -m -json all #gosetup
Run Code Online (Sandbox Code Playgroud)

它的输出是以下错误:

go list -m: can't compute 'all' using the vendor directory
    (Use -mod=mod or -mod=readonly to bypass.)
Run Code Online (Sandbox Code Playgroud)

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

我的项目结构如下:

app/
    bin/
    pkg/
    src/
        app/
            cmd/
            vendor/
            go.mod
Run Code Online (Sandbox Code Playgroud)

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

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

在 Go/Go 模块 (vgo) 下,我已选中“启用 Go 模块 (vgo) 集成”和“供应商模式”

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

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

dls*_*per 11

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

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

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