GO111MODULE=on

go会忽略GOPATH和vendor文件夹,只会根据go.mod加载依赖

# 启用 Go Modules 功能
GO111MODULE="on"

GOPROXY="https://goproxy.io,direct"

那什么是GoModule?

GoModule就是一个用来取代GoPath的Golang的工作空间。

因为所有的Golang的文件,都需要放在GoPath目录下才能进行正确的编译和运行,但是后续版本有了GoModule之后,我们就可以把文件放在GoModule目录下,而放在GoModule目录下的Golang文件,也可以正确地编译运行。

GoPath所引出的问题,就是因为第三方类库的包所导致的,GoPath和GoModule就分别负责不同的职责,共同为我们的Golang项目服务。

GoPath我们用来存放我们从网上拉取的第三方依赖包。

GoModule我们用来存放我们自己的Golang项目文件。

当我们自己的项目需要依赖第三方的包的时候,我们通过GoModule目录下的一个go.mod文件来引用GoPath目录src包下的第三方依赖即可。

这样既解决了原来只能局限在GoPath目录src包下进行编程的问题;也解决了第三方依赖包难以管理和重复依赖占用磁盘空间的问题。

解决办法:

选中项目右键选择打开集成终端,在集成终端输入:go mod init main.go,main.go为项目名,回车会在项目根目录下自动生成go.mod 文件。

问题就解决了。