我有一个非常大的围棋项目,依赖于github.com/golang/mock.不幸的是,这个包不再被维护,开发人员已经指示人们使用go.uber.org/mock的Forking .因此,我想将github.com/golang/mock依赖项替换为go.uber.org/mock.

据我所知,这正是go.mod的replace指令的目的(允许您替换依赖项,而不必更改每个文件中的导入路径).因此,用fork 替换此模块应该和在我的go.mod中添加以下代码行一样简单:

replace github.com/golang/mock => go.uber.org/mock v0.2.0

遗憾的是,在try 运行任何go命令时,这会导致错误:

$ go mod tidy
...
go: go.uber.org/mock@v0.2.0 used for two different module paths (github.com/golang/mock and go.uber.org/mock)

What am I doing wrong here?

如有必要,您可以查看回购/promise here.

推荐答案

根据replace directive人的文件:

无论使用本地路径还是模块路径指定替换,如果替换模块有一个go.mod文件,其模块指令必须与它替换的模块路径匹配.

这里不能使用replace指令.

由于go.uber.org/mock是以不同的模块路径发布的,我认为您必须将其视为与github.com/golang/mock完全不同的模块.

Go相关问答推荐

如何修复在Go API中使用Gin Framework的请求资源上没有使用Gin Framework的请求源的消息?''

Golang测试容器,无法使网络正常工作

GoLang:无法发送带有附件的邮箱

你能把用户界面文件中的GTK4应用程序窗口添加到GTK4应用程序中吗?

如何防止程序B存档/删除围棋中程序A当前打开的文件?

Golang使用Run()执行的命令没有返回

Websocket服务器实现与x/net库trowing 403

如何使用 AWS sdk 在 Go 中正确解组 PartiQL 查询的结果?

优化方式中所有可能组合的字符串相似度

如何用mpb创建两行进度条?

如何在 fyne-io/fyne 中设置文本的字母间距?

设置指向空接口的指针

数据流中的无根单元错误,从 Golang 中的 PubSub 到 Bigquery

为什么 Go 被认为是部分抢占式的?

对所有标志进行 ORing 的简短方法

使用 `didip/tollbooth` 限制每小时最大请求数

Golang grpc go.mod 问题

如何优雅地映射到 Go 中返回可变长度数组的方法?

是否可以使用按位运算在随机 unicode 字符串中找到重复字符?

如何在 docker 文件中安装 golang 包?