【发布时间】:2021-08-26 03:46:48
【问题描述】:
在 Go 1.17 中,go.mod 有两个部分,直接依赖项和间接依赖项,但是,没有说明间接依赖项与直接依赖项之间的关系。
我怎样才能找到一个或多个模块使用它的特定间接依赖?
【问题讨论】:
-
请注意,这在 Go 1.17 中并不新鲜。间接依赖总是存在于 go.mod 中,它们只是被移到了 Go 1.17 中的一个新部分。
标签: go dependencies go-modules
在 Go 1.17 中,go.mod 有两个部分,直接依赖项和间接依赖项,但是,没有说明间接依赖项与直接依赖项之间的关系。
我怎样才能找到一个或多个模块使用它的特定间接依赖?
【问题讨论】:
标签: go dependencies go-modules
【讨论】:
go mod graph 是可接受的替代方案吗?
// indirect 部分导入了某个包时,才会将模块依赖项添加到该部分,但 go mod graph 根本不检查包导入图——它只报告模块之间的依赖关系,而不是这些模块中的包。
go mod graph 会给你一个保守的近似值。 (它会报告一些模块到模块的边缘,这些边缘是由与您的程序实际上不相关的包产生的。)
go.mod 文件中的indirect 模块,真正重要的唯一用途是由主模块传递导入的包。这实际上取决于他们试图回答哪个问题:go mod graph 回答“为什么是这个特定版本?”,而包导入图回答“为什么是这个模块?”。