我有一个使用外部库的项目,该库中有一个错误。要修复该错误,我试图做的是克隆外部库,将其放置在项目内的子目录中,然后在此处进行修复。因此,如果外部库为example.com/example/example/
,则将其放在项目中名为example
的文件夹中,从example.com/example/example/
删除go.mod
依赖项,然后替换所有{{1} }使用example.com/example/example/
问题是项目无法编译。每当执行myproject/example/
时,都会返回错误:go build
。我找到构建项目的唯一方法是删除克隆的外部库的no matching versions for query "latest"
文件,但这似乎并不正确。那么构建这样一个项目的正确方法是什么?
答案 0 :(得分:2)
正确的方法是使用replace directive。
此想法是从顶级go.mod
文件中替换导入的依赖项的模块名称,而无需更改外部依赖项。
所以我要做的就是将go.mod
添加到顶级 replace example.com/example/example => ./example
。