所以情况如下:
我有一个 go-ipfs
的 fork .这取决于 go-ipfs-config
.我需要修改go-ipfs-config
并制作 go-ipfs
取决于我的修改版本。
我 fork 了go-ipfs-config
进行了更改并确保将路径更新为我的 fork 版本的路径,如 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 语言工具链中发生的一些事情。
显然 https://proxy.golang.org是一回事!它是由 google 运营的缓存模块的服务。所以如果你发布了一个版本,删除它,很可能该版本已经缓存在 https://proxy.golang.org 中。 .这正是我的情况。我发布了 0.5.3 版本,删除了它,但它并没有真正消失,因为 Google 缓存已经掌握了它。
因此,如果您看到不应该存在的版本。这应该是您检查的第一个地方。这个documentation link还进一步阐明了代理以及如何对其进行调整。
我是根据我在打开报告此行为的问题上进行的对话发现的。好奇的可以去看看here .
关于go - 使用 Go 依赖项的修改版本的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61398475/