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

时间:2019-12-15 22:24:14

标签: go go-modules

我有一个使用外部库的项目,该库中有一个错误。要修复该错误,我试图做的是克隆外部库,将其放置在项目内的子目录中,然后在此处进行修复。因此,如果外部库为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"文件,但这似乎并不正确。那么构建这样一个项目的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

正确的方法是使用replace directive

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

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