首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Go 1.18中的go.work.sum文件跟踪什么?

Go 1.18中的go.work.sum文件跟踪什么?
EN

Stack Overflow用户
提问于 2022-03-25 01:26:39
回答 1查看 1.6K关注 0票数 5

我刚刚在一个现有的项目上试用了Go 1.18工作区。考虑以下项目目录结构:

代码语言:javascript
运行
复制
project-root/
|-- app/
|  |-- go.mod
|  |-- go.sum

每份文件,我在项目的根目录中运行了go work init ./app命令。这个命令按预期的方式创建了一个go.work文件,但是它也创建了一个不被期望的go.work.sum文件。

令人困惑的是,go.work.sum引用了在go.sum中可以找到的两个模块,但是与go.sumgo.work.sum相比,每个模块的版本并不相同。还有一个问题:为什么在go.work.sum中只引用这两个模块,而没有引用其他模块?注意,工作区中只有一个模块。

go.work.sum文件跟踪什么?有任何记载吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-25 06:51:32

go.work.sum文件在相关的特性建议中提到(似乎没有其他地方?):

https://go.googlesource.com/proposal/+/master/design/45713-workspace.md#files

go命令将使用整个工作区模块中存在的一组集体的go.sum文件来验证依赖模块,但在某些情况下,工作区模块中的go.sum文件集体不包含验证构建所需的所有总和:更简单的情况是,如果工作区go.mod文件本身不完整,则 go命令将向工作区的go.mod文件中添加丢失的和,而不是添加到模块的go.sum文件中。

该建议(与上面的链接相同)还描述了另外一个用例,即两个单独的项目都没有从某个特定版本的模块导入包,而是要求它作为间接依赖项,从而忽略了模块代码的校验和。

因此您的子模块可能会显示其中一种情况。如果是前者,我希望在子模块上运行go mod tidy会使所有内容同步,并消除对go.work.sum的需求。根据您的描述,听起来似乎是后者,因此需要go.work.sum来跟踪丢失的校验和。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71611196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档