具有外部模块本地副本的项目无法构建

Project with local copy of external module doesn't build

我有一个使用外部库的项目,其中有一个错误。为了修复这个错误,我尝试做的是克隆外部库,将它放在项目的一个子目录中,然后在那里修复它。所以如果外部库是example.com/example/example/,我只是把它放在我的项目中一个名为example的文件夹,删除go.mod中的example.com/example/example/依赖,并替换所有example.com/example/example/ 使用 myproject/example/

导入语句

问题是项目没有编译。每当执行 go build 时,都会 returns 一个错误:no matching versions for query "latest"。我发现构建项目的唯一方法是删除克隆的外部库的 go.mod 文件,但这似乎不对。那么构建这样一个项目的正确方法是什么?

正确的方法是使用 replace directive.

想法是从顶层 go.mod 文件 替换导入依赖项 的模块名称,而不更改外部依赖项。

所以我所要做的就是将 replace example.com/example/example => ./example 添加到 顶级 go.mod.