如何使用与 src 路径不同的模块名称更新 go 依赖项?

时间:2021-01-21 15:22:02

标签: go go-modules

  • 位置:github.com/elastic/beats
  • 模组文件:github.com/elastic/beats/go.mod
  • 模块名称:github.com/elastic/beats/v7
  • 标签:v7.10.2

我必须运行什么 LoTR 咒语 go get 才能获得一些依赖更新操作?

2 个答案:

答案 0 :(得分:2)

这将更新到 v7 的最新 minor.patch 版本:

go get github.com/elastic/beats/v7

或者如果您希望将特定版本更新/降级为:

go get github.com/elastic/beats/v7@v7.10.2

添加 -u 标志将额外更新 github.com/elastic/beats/v7 的依赖项:

go get -u github.com/elastic/beats/v7

答案 1 :(得分:2)

传递给 go get 的参数列表通常应该是 package paths or patterns 的列表,而不仅仅是模块路径。

例如,您可以调用:

go get -d github.com/elastic/beats/v7/libbeat/beat@latest

为了获得最新版本的包 …/libbeat/beat 下载该包所需的任何传递依赖项。

(你可以只传递一个模块路径,这也应该更新整个依赖模块的版本,但它不会下载源代码或模块校验和可能需要的传递依赖项以构建更新的包。go get 通常不知道哪些传递依赖项与您计划在它之后调用的命令相关,并且它不会做额外的工作来推测性地识别相关依赖项。)