3 回答
TA贡献1772条经验 获得超8个赞
导致go.sum
文件中写入每个依赖项总和哈希值。与您的文件相关的一个go.mod
,以及从您已导入的模块导入的一个。尝试运行go mod tidy
以减少导入的模块,您的go.mod
文件将包含一些//indirect
导入,即您导入的模块在内部使用的模块。
TA贡献1790条经验 获得超9个赞
go.sum
包含特定模块版本内容的预期加密校验和。每次使用依赖项时,如果缺少或需要匹配 go.sum 中的现有条目,则将其校验和添加到 go.sum 中。
每个包/模块都是依赖项,每个依赖项都意味着用校验和来维护,go.sum
因此无论是包还是模块,它都会被维护。
源文件将下载到$GOPATH/src
相应的目录中。
TA贡献1873条经验 获得超9个赞
也许Golang源码可以解释原因:
func (r *codeRepo) legacyGoMod(rev, dir string) []byte {
// We used to try to build a go.mod reflecting pre-existing
// package management metadata files, but the conversion
// was inherently imperfect (because those files don't have
// exactly the same semantics as go.mod) and, when done
// for dependencies in the middle of a build, impossible to
// correct. So we stopped.
// Return a fake go.mod that simply declares the module path.
return []byte(fmt.Sprintf("module %s\n", modfile.AutoQuote(r.modPath)))
}
来自此处的代码: https: //github.com/golang/go/blob/acac535c3ca571beeb168c953d6d672f61387ef1/src/cmd/go/internal/modfetch/coderepo.go#L857
↓ VSCode 打开/usr/local/go/src
:
定位到
cmd/go/internal/modfetch/coderepo.go
,向 func 添加断点legacyGoMod
找到
cmd/go/internal/modfetch/coderepo_test.go
,按 F5稍等片刻,停在断点处
- 3 回答
- 0 关注
- 153 浏览
添加回答
举报