所以这是情况:
我的叉子是go-ipfs
。取决于go-ipfs-config
。我需要修改go-ipfs-config
并使go-ipfs
取决于我的修改版本。
我分叉了go-ipfs-config
,并进行了更改,并确保将路径更新为我的分叉版本的路径,如here所示。我通过运行go build
然后我在go.mod
中更新了go-ipfs
以使用修改后的版本。我使用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 lang工具链中发生的几件事。
显然https://proxy.golang.org是一件事!这是由Google运营的缓存模块的服务。因此,如果您发布了一个版本并将其删除,则可能是该版本已被缓存在https://proxy.golang.org中。这正是我的情况。我发布了0.5.3版本,将其删除,但是由于Google缓存已经掌握了它,它并没有真正消失。
因此,如果您看到的版本不存在。这应该是您检查的第一位。 documentation link还为代理提供了更多亮点,以及如何对其进行调整。
我根据我就报告此行为而打开的问题进行的对话发现了这一点。如果您好奇,可以查看here。