登录
首页 >  Golang >  Go问答

导入未使用的 golang 模块时,为什么 go.sum 文件依然具有与 go.mod 文件相对应的哈希值?

来源:stackoverflow

时间:2024-03-13 17:09:25 462浏览 收藏

大家好,我们又见面了啊~本文《导入未使用的 golang 模块时,为什么 go.sum 文件依然具有与 go.mod 文件相对应的哈希值?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我现在使用golang 1.13并使用go模块。

但是,当我导入一个在 go 模块中选择的包(例如 a)时,go.sum 文件中仍然有两行。 go 模块告诉我们“每个已知的模块版本都会在 go.sum 文件中生成两行。第一行给出模块版本文件树的哈希值。第二行将“/go.mod”附加到版本并给出仅模块版本(可能是合成的)go.mod 文件的哈希值。仅 go.mod 哈希允许下载和验证模块版本的 go.mod 文件(计算依赖关系图所需),而无需下载所有模块的源代码代码。”

(https://tip.golang.org/cmd/go/#hdr-module_downloading_and_verification)。

但是这个包不是一个模块,所以它没有 go.mod 文件?例如,如果我导入不是模块的包调用“github.com/example/a”,在 go.sum 文件中,它仍然有这两行:

github.com/example/a v0.0.0-20190627063042-31896c4e4162 h1:rSqi2vQEpS+GAFKrLvmxzWW3OGlLI4hANnEf/ib/ofo=

github.com/example/a v0.0.0-20190627063042-31896c4e4162/go.mod h1:tcpxll8wcruwpPpWBbjAsWc1JbLHld/v9F+3rgLIr4c=

我的问题是,第二行是如何生成的?


解决方案


go.sum 包含预期的加密校验和 特定模块版本的内容。每次出现依赖关系时 使用时,如果缺少或需要匹配,则将其校验和添加到 go.sum go.sum 中的现有条目。

每个包/模块都是依赖项,每个依赖项都意味着通过 go.sum 中的校验和进行维护,因此无论是包还是模块,它都会被维护。

源代码将相应地下载到 $GOPATH/src 目录中。

尝试 -

今天关于《导入未使用的 golang 模块时,为什么 go.sum 文件依然具有与 go.mod 文件相对应的哈希值?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>