意外的模块路径“golang.org/x/lint”

博客讲述了在Go项目中遇到的模块路径引用问题,即一些依赖仍然指向github.com/golang/lint而非golang.org/x/lint。由于golang/go#30833,即使直接依赖已修复,只要间接依赖的旧版本存在,问题仍会出现。解决方案包括更新依赖路径上的模块,使用replace指令指向正确存储库,以及解决go.mod文件中导入路径不匹配的问题。
摘要由CSDN通过智能技术生成
go: github.com/micro/go-grpc@v1.0.1 requires
        github.com/micro/go-plugins@v1.1.0 requires
        github.com/golang/lint@v0.0.0-20190313153728-d0100b6bd8b3: parsing go.mod:
        module declares its path as: golang.org/x/lint
                but was required as: github.com/golang/lint

问题在于,依赖关系图中的某些软件包仍在引用github.com/golang/lint,而不是golang.org/x/lint。由于golang / go#30833,即使较旧版本的模块具有不正确的引用,此问题也会浮出水面。也就是说,即使固定直接依赖于lint的程序包是固定的,只要其他某些程序包依赖于直接依赖程序包的旧版本,此问题仍然会触发。要解决此问题,您将必须确保模块图中没有所有不正确的引用(这可能需要将从项目到依赖项的依赖路径上的一个或多个模块更新为lint,并手动升级该路径上的第一个模块)。
有关在go-diff中本质上相同问题的一些讨论,以及用于更有用的错误消息的一些建议,请参见sourcegraph / go-diff#34gotip。
作为一种解决方法,我认为您可以使用replace指令指向正确的存储库:
go mod edit -replace github.com/golang/lint=golang.org/x/lint@latest
请注意,这会在上添加一行go.mod,但是在重写latest时ÿ

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值