因为某些意外错误,存在需要更新golang项目中的 某依赖库的 版本hash, 但希望版本号不发生变化;
1. 删除原有go.sum中hash值
查看go.sum中所需要更新的库,删除其hash值;
2. 清除本项目go mod缓存
在本项目目录中, 仅有一个go.mod;执行命令
go clean --modcache
3. 重新下载相关go mod库组件
执行一下命令, 刷新所有依赖库的缓存,并比对hash
go mod tidy
待所有库下载完成后,发现hash更新完成, 保持了原有依赖库的版本号,但实际引用代码和内容已更新。
4. 问题处理
- verifying module: invalid GOSUMDB: malformed verifier id
# xxx 表示项目名称
go mod init xxx
这样避免重复报错,即使go env都报错;
- 可能存在go版本自动切换问题, 下载更新到指定版本 https://golang.google.cn/dl/
# 查看当前go version 版本
go version
# 查看go.mod中go 版本是否一致;可以考虑更新
- 总是报错invalid GOSUMDB: malformed verifier id
修改或删除原有的GOPATH路径下的sum文件相关内容. 将对应sum文件, 或者整个目录删除#本文对应目录如下, GOPATH="D:\go" D:\go\pkg\mod\cache\vcs