社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
原汁原味的报错信息如下:
报错原因是没有使用 go modules 进行模块管理,无法记录和解析对其他模块的依赖性。只需要在项目根目录执行命令 go mod init
即可。
需要注意的是,使用 go modules 需要设置 go 的环境变量 GO111MODULE
的值。
GO111MODULE
取值有三种:off
,on
和 auto
(默认值)。
GO111MODULE=off
,无模块支持,从 $GOPATH 和 vendor 文件夹寻找依赖包。GO111MODULE=on
,有模块支持,go 会忽略 $GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。GO111MODULE=auto
,go 命令行将会根据当前目录来决定是否启用 modules 功能。可分为两种情形:
当模块功能启用时,依赖包的存放位置变更为
$GOPATH/pkg
,允许同一个 package 多个版本并存,且多个项目可以共享缓存的 module。
个人习惯是,在执行项目前,先执行下面两条命令:
$ go get -u
$ go mod tidy
go get -u
命令会利用网络来更新已有代码包及其依赖包。默认情况下,只会下载本地不存在的代码包,而不会更新已有的代码包。go mod tidy
命令会拉取缺少的模块,移除不用的模块。
参考文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!