情况如下:
我有一把go-ipfs
叉子。这取决于go-ipfs-config
。我需要修改go-ipfs-config
,并使go-ipfs
依赖于我修改的版本。
我分叉了go-ipfs-config
进行了更改,并确保将路径更新为我的分叉版本,如图所示。我通过运行go build
确认这仍然成功构建
然后我在go-ipfs
中更新了go.mod
以使用我的修改版本。我使用了replace
指令来表示这一意图,可以在这里看到
这是一个绝对的掩体,我不再确定发生了什么。
当我执行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
疯狂的是,在github.com/dadepo/go-ipfs-config中不存在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是一件事!这是谷歌运营的一项缓存模块的服务。因此,如果你发布了一个版本,并将其删除,很可能该版本已经缓存在https://proxy.golang.org.这正是发生在我身上的事情。我发布了0.5.3版本,删除了它,但它并没有真正消失,因为谷歌缓存已经掌握了它
所以,如果你看到的是不应该存在的版本。这应该是你检查的第一个地方。这个文档链接还提供了更多关于代理以及如何调整代理的信息。
我是根据我就我开始报告这种行为的问题进行的对话发现这一点的。如果你很好奇,你可以在这里看看。