[英]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 -modcache
和go 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.