go mod 下 , 如果依赖包更新了 go build 会出现 错误: invalid pseudo-version

例如:

go: github.com/bilibili/kratos@v0.2.2 requires
    github.com/prometheus/client_model@v0.0.0-20190220174349-fd36f4220a90: invalid pseudo-version: does not match version-control timestamp (2019-01-29T23:31:27Z)

原因:

远程包的时间戳跟go mod 记录的时间戳不对应

解决方案:

go mod edit -replace=github.com/prometheus/client_model@v0.0.0-20190220174349-fd36f4220a90=github.com/prometheus/client_model@master
  1. 第一个 @ 后面的 v0.0.0-20190220174349-fd36f4220a90 是 旧的版本信息
  2. 第二个 @ 后面的master 是 新的 版本信息,可以是 version,也可以是 git 版本

参考:
https://tip.golang.org/doc/go1.13#version-validation

标签: golang, go mod, version