具有外部模块本地副本的项目无法构建
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
.
我有一个使用外部库的项目,其中有一个错误。为了修复这个错误,我尝试做的是克隆外部库,将它放在项目的一个子目录中,然后在那里修复它。所以如果外部库是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
.