繁体   English   中英

使用 Go 依赖项的修改版本时出现问题

[英]Issue with using a modified version of a Go dependency

所以情况如下:

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

我分叉了go-ipfs-config进行了更改,并确保将路径更新为我的分叉版本的路径,如此处所示 我通过运行go build确认这仍然可以成功构建

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

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

当我做go mod tidy以获取依赖项时,我得到以下 output:

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中不存在 v0.5.3!

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

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

甚至可以在这里看到

我已经运行go clean -modcachego clean -r等命令,但似乎没有解决问题!

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

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

显然https://proxy.golang.org是一回事。 它是 google 运营的缓存模块的服务,所以如果你发布了,删除它,很可能该版本已经缓存在https://proxy.golang.org中。 这正是我的情况。 我发布了 0.5.3 版本,删除了它,但它并没有真正消失,因为 Google 缓存已经掌握了它。

因此,如果您看到不应该存在的版本。 这应该是您检查的第一个地方。 文档链接还对代理以及如何调整它提供了更多信息。

我是根据我在打开报告此行为的问题上进行的对话发现的。 如果您好奇,可以在这里查看

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM