问题背景:
当我们设置了 GOPROXY=https://proxy.golang.org,使用 Go module 管理依赖,
有时会出现依赖找不到的情况(报错类似这样):
go: github.com/golangci/ineffassign@v0.0.0-20180808204949-42439a7714cc: unexpected status (https://proxy.golang.org/github.com/golangci/ineffassign/@v/v0.0.0-20180808204949-42439a7714cc.info): 410 Gone
出现该问题的原因是 https://proxy.golang.org 目前开启了版本验证,官网说明请戳这里
解决方案:
解决该问题主要有两个方式:
- 设置
GOPROXY=direct,也就是不走https://proxy.golang.org了 - 在
go.mod文件中通过 replace 功能修改依赖的版本,选择一个https://proxy.golang.org中存在的兼容版本
例如本例替换方式:
replace (
github.com/golangci/ineffassign => github.com/golangci/ineffassign v0.0.0-20180808204949-2ee8f2867dde
)
如果你不清楚应该使用哪个版本,可以直接尝试将版本号设置为 latest,go mod 会自动计算实际最新的版本号。

当使用Gomodule管理依赖并设置GOPROXY=https://proxy.golang.org时,可能会遇到依赖找不到的问题。本文介绍了解决这一问题的两种方法:一是直接设置GOPROXY=direct;二是利用go.mod文件中的replace功能修改依赖版本。

被折叠的 条评论
为什么被折叠?



