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
)中执行