1 go mod tidy
go mod tidy
默认情况下在拉取go的依赖包时都是走的https协议,但是go的私有git仓库都是只支持http协议,所以当你的go.mod
里面有私有仓库的依赖时,在使用go mod tidy
拉取依赖时,一定会遇到这么个问题,就是使用https协议去请求你的私有仓库的依赖,导致请求不同,拉取不到。
2 解决方法1
通过设置git环境配置,强制让私有仓库的请求不走https协议,参考:https://blog.csdn.net/sky527759/article/details/124818233
3 解决方法2
添加参数或环境变量。
(1)使用 go get -insecure
这种方式不推荐,原因如下
- 添加 -insecure 参数即表示更新依赖时可以不去校验CA证书,但是这会带来一个问题:范围无法界定(overkill),所有与要更新依赖相关联的依赖,均不会去做校验,可能会意外更新到不安全的依赖。
- -insecure 仅支持 go get 命令,不支持 go mod 命令,因此使用 go mod 命令时是无法更新不支持https协议的私有库的。
- 添加 GOINSECURE 参数
(2)使用GOINSECURE环境变量
推荐这种方式
在Go 1.14中增加了新的环境变量,用于指定哪些域名下的仓库不去校验CA证书。
通过设置go的环境变量,GOINSECURE
和GOPRIVATE
,把这2个参数设置成私有仓库的域名即可:
1 | go env -w GOINSECURE=your.example.com GOPRIVATE=your.example.com |
Reference
- https://blog.csdn.net/sky527759/article/details/124818233
- https://www.cnblogs.com/hiwz/p/12652153.html
写在最后
欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment