【问题标题】:how to upgrade go mod to v2 or higher version?如何将 go mod 升级到 v2 或更高版本?
【发布时间】:2019-03-11 06:41:25
【问题描述】:

我的 go 包版本是 v1.0.7,现在我想升级到 v2.0.0。当我使用go get CODEPATH 时,我用它创建了一个新标签,它仍然使用版本 v1.0.7。 go.mod 应该像 require CODEPATH v2.0.0+incompatible 但我想知道什么命令会这样做?

文档Modules 说将 /v2 添加到模块路径,但没有说明如何升级客户端的 go.mod。

【问题讨论】:

  • 请注意,主要版本升级时导入路径也会发生变化。现在应该是CODEPATH/v2
  • @Henry 我尝试添加 /v2 但使用 go get 命令 go.mod 似乎更改为 v2.0.0

标签: go


【解决方案1】:

我自己试过了,效果很好。

  1. /v2 添加到您的go.mod 的模块行module github.com/mnhkahn/aaa/v2
  2. 如果导入模块的子包,像这样导入import "github.com/mnhkahn/aaa/v2/config";
  3. 创建一个名为 v2.0.0 的标签;
  4. go get github.com/mnhkahn/aaa/v2;
  5. go mod tidy;

【讨论】:

    【解决方案2】:

    如果您手动执行此操作,来自 Bryce 的 answer 看起来不错。

    如果您对自动化方法感兴趣(例如,您可能需要访问许多文件),一个好的自动化解决方案是https://github.com/marwan-at-work/mod,它可以自动添加、删除或更改所需的/vN在您的 *.go 代码和您的 go.mod 中。详情请见this answer

    【讨论】:

      猜你喜欢
      • 2020-06-25
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 2014-06-17
      • 1970-01-01
      相关资源
      最近更新 更多