我有一个使用外部库的项目,其中有一个错误。为了修复该错误,我尝试做的是克隆外部库,将其放置在项目内的子目录中,然后在那里修复它。因此,如果外部库是 example.com/example/example/
,我只需将其放在我的项目中名为 example
的文件夹中,删除 example.com/example/example/
来自 go.mod
的依赖项,并将所有 example.com/example/example/
import 语句替换为 myproject/example/
问题是该项目无法编译。每当执行go build
时,它都会返回一个错误:没有查询“最新”的匹配版本
。我发现构建项目的唯一方法是删除克隆的外部库的 go.mod 文件,但这似乎不对。那么构建这样一个项目的正确方法是什么?
最佳答案
正确的方法是使用 replace directive .
这个想法是替换从顶级go.mod
文件导入的依赖项的模块名称,而不更改外部依赖项。
所以我所要做的就是将 replace example.com/example/example => ./example
添加到顶级 go.mod
.
关于go - 无法构建具有外部模块本地副本的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59348582/