【问题标题】:Issue with using a modified version of a Go dependency使用 Go 依赖项的修改版本的问题
【发布时间】:2020-04-27 22:27:17
【问题描述】:

所以情况如下:

我有一个go-ipfs 的分支。这取决于go-ipfs-config。我需要修改go-ipfs-config 并使go-ipfs 取决于我修改后的版本。

我对@9​​87654328@ 进行了分叉,并进行了更改,并确保将路径更新为我的分叉版本的路径,如here 所示。我通过运行go build 确认这仍然可以成功构建

然后我在go-ipfs 中更新了go.mod 以使用我修改后的版本。我使用了replace 指令来表示这个意图,可以看到here

这就是事情变得绝对掩体的地方,我不再确定发生了什么。

当我使用go mod tidy 获取依赖项时,我得到以下输出:

go: finding module for package github.com/dadepo/go-ipfs-config
go: found github.com/dadepo/go-ipfs-config in github.com/dadepo/go-ipfs-config v0.5.3

疯狂的是,v0.5.3 在 github.com/dadepo/go-ipfs-config 中不存在!

还将以下行添加到 go.mod :

github.com/dadepo/go-ipfs-config v0.5.3 // indirect

甚至可以看到here

我已经运行了 go clean -modcache 和 go clean -r 等命令,但似乎无法解决问题!

有人知道我做错了什么吗?以及如何实现使我的项目版本依赖于其依赖项的另一个修改版本的目标?

【问题讨论】:

    标签: go dependency-management go-modules


    【解决方案1】:

    好的,这是因为我没有意识到 Go 语言工具链中发生的一些事情。

    显然https://proxy.golang.org 是一个东西!它是由 google 运营的缓存模块的服务。因此,如果您发布了一个版本,然后将其删除,那么该版本很可能已经缓存在 https://proxy.golang.org 中。这正是我的情况。我发布了 0.5.3 版本,将其删除,但它并没有真正消失,因为 Google 缓存已经掌握了它。

    因此,如果您看到不应该存在的版本。这应该是您检查的第一个地方。这个documentation link 还进一步阐明了代理以及如何调整它。

    我是根据我在打开报告此行为的问题上进行的对话发现的。有兴趣的可以去here看看。

    【讨论】:

      猜你喜欢
      • 2019-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 2014-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多