go - 使用 Go 依赖项的修改版本的问题

标签 go dependency-management go-modules

所以情况如下:

我有一个 go-ipfs 的 fork .这取决于 go-ipfs-config .我需要修改go-ipfs-config并制作 go-ipfs取决于我的修改版本。

我 fork 了go-ipfs-config进行了更改并确保将路径更新为我的 fork 版本的路径,如 here 所示.我通过运行 go build 确认它仍然可以成功构建。

然后我更新了go.modgo-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/

相关文章:

git - 去使用 ssh 而不是 https(不在 github 上)

go - unique_index 和 unique 有什么区别?

go - 如何设置默认选择选项以使用 Golang 选择标签?

go - 了解文件访问代码片段的 "Why"

xcode - Cocoapods Private Repo 没有为标签提取正确的代码

android - gradle 的本地模块依赖关系

go - 模块: how to force version of dependent lib

html - POST方法的默认浏览器表单行为是什么?

java - spring版本在pom中设置为3.2.1.RELEASE,但项目中的jar不同

Goland:如何使用自定义 modfile 而不是 go.mod?