当前位置: 首页 > news >正文

go kratos手动更新依赖

今天用kratos发现一个有点麻烦的问题:我安装的go版本为1.25.3,但是kratos对包golang.org/x/tools的默认依赖是v0.17.0:

$ GOWORK=off go generate ./...
go: downloading golang.org/x/tools v0.17.0
go: downloading github.com/google/subcommands v1.2.0
protocol error: received DATA after END_STREAM
go: downloading golang.org/x/mod v0.14.0
# golang.org/x/tools/internal/tokeninternal

但是这个版本太老了以至于我安装的时候报错:

/go/pkg/mod/golang.org/x/tools@v0.17.0/internal/tokeninternal/tokeninternal.go:78:9: invalid array length -delta * delta (constant -256 of type int64)

报错的原因是代码中自动检查tokenFileSet的大小,由于使用了unsafe库,go1.25里改变了这个参数的值,破坏了go本身的向下兼容性,就导致了升级到更新版本的go,老版本依赖无法支持的问题。

	const delta = int64(unsafe.Sizeof(tokenFileSet{})) - int64(unsafe.Sizeof(token.FileSet{}))var _ [-delta * delta]int

这个问题在新版本的golang.org/x/tools里面修复了。那么我希望使用最新版本解决这个问题:

go get golang.org/x/tools@latest

于是虽然IDE代码检查的时候有警告(提示该依赖没有被使用):
在这里插入图片描述
但是编译代码还是会根据go.mod文件中指定的0.38.0版本进行。
警告也有点麻烦,于是我尝试重新寻找依赖:

$ go get golang.org/x/tools@none
$ go mod tidy
$ go generate ./...
go: downloading golang.org/x/tools v0.37.0
go: downloading golang.org/x/mod v0.28.0
wire: app-tslt/cmd/app-tslt: wrote /home/tony/rucomm/backend_services/app-tslt/cmd/app-tslt/wire_gen.go

居然找到了正确版本的依赖。这可能说明之前寻找依赖的算法有点问题?但是解决了就好

http://www.dtcms.com/a/520612.html

相关文章:

  • 怎么看网站开发的技术百度交易平台
  • 虚拟交易网站开发网站流量图怎么做
  • OpenTelemetry Agent直接到Jaeger链路跟踪
  • Monorepo系列:Pnpm Workspace 搭建 Monorepo
  • 有没有专门做字体排版设的网站实时热点新闻事件2021
  • 【开题答辩全过程】以 基于BS模式的图书馆管理系统为例,包含答辩的问题和答案
  • Java循环结构全解析:从基础用法到性能优化(含经典案例)
  • C 位域:核心地带,引领技术前沿
  • 鹤壁专业做网站公司前端培训心得
  • python-87-Pyinstaller打包在没有安装Python的电脑上运行
  • 海北高端网站建设多少钱网站后台登陆密码破解
  • CrewAI 核心概念(Knowledge)篇
  • 预检查和表单提交
  • [MySQL] 数据库设计
  • 数据处理像搭乐高?详解 RAGFlow Ingestion Pipeline
  • 模仿网站属于侵权吗做网站视频是什么专业
  • 汽车转向控制 / 线控转向介绍——控制技术——智能驾驶专栏
  • 基于KSP密钥管理系统的汽车 ECU JTAG 调试接口动态授权与安全管控
  • 世界经理人网站手机版学生网页网站制作软件大全
  • 企业网站带新闻发布功能的建站wordpress文章显示颜色
  • SpringBoot-Web开发之Web原生组件注入
  • Spring Cloud - Spring Cloud 本地配置(本地配置概述、本地配置实现)
  • 青岛商城网站建设长春建设平台网站的公司
  • 这几年做网站怎么样wordpress adsense主题
  • 做视频网站服务器怎么选择12306网站开发时间
  • 如何做家教网站赚钱如何申请国外网站
  • 淄博做网站建设云南网站建设方案
  • 实用指南--多账号矩阵防封控
  • 前端框架Vue(Vue 的挂载点与 data 数据对象)
  • pycharm 远程连接服务器添加github copilot