Goland没有检测到从github.com导入的模块。这些模块位于$ GOPATH / pkg / mod目录中,但是导入尚未解析。供应商目录也下载了所有软件包。

Goland版本:2019.3.3
Go版本:Go 1.13.7

在“首选项”下:

 - GOROOT is set to /usr/local/go
 - Global GOPATH is set to /Users/xyz/go
 - Go module integration is enabled
 - Enable vendoring support is enabled.
 - dep integration is not enabled.

项目结构:
- project-name
  - bin
  - build
  - cmd
     - serviced
        - main.go
  - internal
    - config
      - config.go
  - vendor
    - github.com
      - .....
  - go.mod

- External Libraries
  - GO SDK 1.13.7

值得一提的是,Goland并未在外部库下下载Go模块。

最佳答案

将库的所有src下载到$GOPATH/pkg/mod

go mod download
使用vendor标志创建<project-name>/vendor目录(vendor)
go mod vendor
1.14版之前的
使用vendor标志进行构建
go build -mod=vendor
要么
GOFLAGS="-mod=vendor" go build
1.14及更高版本(Go Modules)

当主模块包含顶层vendor目录并且其go.mod文件指定go 1.14或更高版本时,go命令现在默认接受该标记的操作为-mod=vendor。该标志的新值-mod=mod导致go命令改为从模块缓存中加载模块(就像不存在任何供应商目录时一样)。

project-name目录(包含go.mod)中执行

09-04 17:49
查看更多