go.mod:强制使用特定版本进行间接依赖

Tes*_*ssa 9 go dependency-management

假设我的直接依赖A取决于 package B v1.0B v1.0未列出go.mod,但其校验和存在于go.sum

有没有办法强制我的项目使用B v1.1?如果包B在依赖关系图中低了几级怎么办?

提前致谢。

adv*_*nsa 1

正如评论中提到的,go.mod 可以具有间接依赖项,如下所示:

module test

go 1.16

require (
    github.com/gorilla/mux v1.8.0
    github.com/kr/pretty v0.1.0 // indirect
    golang.org/x/net v0.0.0-20210415231046-e915ea6b2b7d // indirect
)
Run Code Online (Sandbox Code Playgroud)

上面是我的一个项目中的 go.mod。请注意,这// indirect不是手动注释。

要锁定依赖版本,只需更新 go.mod 或简单地执行go get B@1.1

  • 执行完 ```go get B@0.2``` 之后,我运行了 ```mod graph | grep B```。但我仍然看到依赖树中使用了“B v0.1”?“B”是依赖关系树中几层的依赖关系。 (3认同)
  • 较低版本的“B”仍在“go.sum”中,所以我假设这些版本仍在使用中。 (2认同)