问题背景:
当我们设置了 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
会自动计算实际最新的版本号。