go mod tidy拉取依赖包bug问题及解决
作者:lingwu_hb
go mod tidy
拉取缺少的模块,同时移除不用的模块
该命令会调用go get,然后go get会调用git的命令,拉取代码
go语言其他环境变量
GOSUMDB:
Go checksum database 的缩写,含义如其名字,用于在拉取模块版本时保证拉取到的模块版本数据未经过篡改,若发现不一致,也就是可能存在篡改,将会立即中止。
如果设置为"off",则禁止Go在后续操作中校验模块版本
GONOPROXY
GONOSUMDB
GOPRIVATE
如果当前项目依赖了私有模块,则配置会涉及这三个环境变量。
例如公司的私有 git 仓库,又或是 github 中的私有库,都是属于私有模块,都是要进行设置的,否则会拉取失败。
简单来说就是应对,GOPROXY 设置的代理或 GOSUMDB 设定的 Go checksum database 代理无法访问模块时的情形。
建议直接设置 GOPRIVATE,它的值将作为 GONOPROXY 和 GONOSUMDB 的默认值,所以建议的最佳设置是直接使用 GOPRIVATE。
问题解决步骤
1.配置GO PRIVATE
由于拉取的公司gtiLab仓库代码是私有的,所以需要配置Go PRIVATE环境变量,用于应对GOPROXY设置的代理无法访问模块的情况。
2.https转ssh
由于https拉取代码需要输入用户名和密码,所以需要将所有的https转换成使用ssh的方式进行拉取
3.配置GIT_SSH
Git error: cannot spawn sh: No such file or directory
配置GIT_SSH后仍然没有解决问题,由于对应报错信息是cannot spawn sh,而不是ssh,所以执行步骤4
- 4.将/Git/usr/bin加入到系统环境变量
- 5.关闭vpn,否则会出现验证失败的报错
- 6.GOPROXY需要配置国内代理
报错信息:
go:Get “https://proxy.golang.org/github.com/gin-gonic/gin/@v/v1.6.3.mod”: dial tcp 64.233.187.141:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
配置GOPROXY后
问题解决!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。