go mod vendor报错:verifying 。。。checksum mismatch
按照当前的趋势估计 go 之后的版本都是用 go mod 来管理了,gopath 这种模式感觉会被淘汰。
go mod help 查看帮助
go mod init<项目模块名称>初始化模块,会在项目根目录下生成 go.mod 文件。
go mod tidy 根据 go.mod 文件来处理依赖关系。
go mod vendor 将依赖包复制到项目下的 vendor 目录。建议一些使用了被墙包的话可以这么处理,方便用户快速使用命令 go build -mod=vendor 编译
go list -m all 显示依赖关系。go list -m -json all 显示详细依赖关系。
go mod download 下载依赖。参数是非必写的,path 是包的路径,version 是包的版本。
在网上搜了很多这个问题的解决方案,从一开始的一头雾水不知道这是怎么了到后来发现就是两个校验和不一致的问题,尝试把project中的sum文件删掉并没有解决问题。
简单粗暴一点直接把sum文件中的校验和改成命令行中要下载的那个发现居然可以!!!只要报错就改校验和,最后环境也是跑通的。
举个例子:
go: downloading github.com/flosch/pongo2/v4 v4.0.0
verifying github.com/flosch/pongo2/v4@v4.0.0: checksum mismatch
downloaded: h1:89EuG/yHG6NE7KFmeg5GwnHYiiPQQXA1SGr12O9umVE=
go.sum: h1:6eZe8NSNxtTTGwXgJqqXiiLEDAj7CvkwiYrZFQRW6cQ=
SECURITY ERROR
This download does NOT match an earlier download recorded in go.sum.
The bits may have been replaced on the origin server, or an attacker may
have intercepted the download attempt.
For more information, see 'go help module-auth'.
你只需要把go.sum中找到该行校验和改成downloaded后面的校验和就可以。