Go Modules 工程打包失败:找不到所需模块
问题描述
使用 Go Modules 管理的项目,如果项目根目录不在 $GOPATH/src
下,执行 go build
命令时,可能会出现“cannot find module providing package”错误。
问题原因
当项目不在标准的 $GOPATH/src
目录下时,Go 命令会将该项目视为外部模块。Go 需要通过代理服务器(GOPROXY)来查找和下载所需的模块。如果 GOPROXY 未正确配置,则无法找到并下载依赖的模块,导致构建失败。
解决方案
设置环境变量 GOPROXY
,指向一个可用的模块代理服务器。例如,使用 goproxy.io
:
export GOPROXY=https://goproxy.io
设置完成后,重新运行 go build
命令。Go 将通过配置的代理服务器下载所需的模块,从而成功构建项目。