首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Go模块中跟踪依赖项的来源?

如何在Go模块中跟踪依赖项的来源?
EN

Stack Overflow用户
提问于 2019-10-29 18:16:30
回答 1查看 1.5K关注 0票数 2

我有一个Go模块,比如github.com/myorg/mymodule,我想在另一个模块中更新它的版本。然而,如果我尝试go get -u它,我会得到一个unexpected module path错误:

代码语言:javascript
复制
> go get -u github.com/myorg/mymodule
go: sourcegraph.com/sourcegraph/go-diff@v0.5.1: parsing go.mod: unexpected module path "github.com/sourcegraph/go-diff"
go get: error loading module requirements

对此的修复已经在https://github.com/sourcegraph/go-diff/issues/35中得到了记录:这个模块需要作为github.com/sourcegraph/go-diff/diff而不是github.com/sourcegraph/go-diff导入。

问题是,我不知道在哪里应用这个修复--也就是说,哪个依赖项正在以错误的方式导入这个子依赖项。

特别是,go-diff不出现在go.mod中,它只出现在go.sum中(在几个不同的模块中):

代码语言:javascript
复制
> grep go-diff go.mod
> grep go-diff go.sum
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck=

我尝试过使用go mod why,但这只会简单地报告不需要模块:

代码语言:javascript
复制
> go mod why sourcegraph.com/sourcegraph/go-diff
# sourcegraph.com/sourcegraph/go-diff
(main module does not need package sourcegraph.com/sourcegraph/go-diff)

更令人费解的是,错误消息提到了go-diff@v0.5.1,而go.sum则包含go-diff v0.5.0

总之,如何跟踪go-diff依赖项的“错误导入”是在哪里发生的,以便我可以更新该模块的版本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-29 18:41:05

我能够通过运行go get github.com/sourcegraph/go-diff并添加这个替换指令(cf )来“修补”这个问题。( https://github.com/golang/go/wiki/Modules#when-should-i-use-the-replace-directive)在我试图更新依赖项的模块中:

代码语言:javascript
复制
replace sourcegraph.com/sourcegraph/go-diff => github.com/sourcegraph/go-diff v0.5.1

之后,go get -u github.com/myorg/mymodule运行时没有出现错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58613272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档