公司业务系统用golang语言开发,框架用的gf,今晚gf框架正式升级到2.1.0版本,于是也及时跟进升级到此版本,但升级后发现使用的gtoken报错,主要错误是2.1.0版本中r.Response.WriteJson(respData)不再返回错误值,改为内部处理,而gtoken正好是有部分代码使用到此函数,让gtoken马上升级支持gf2.1.0版本是不可能的,于是只能从github上下载源码进行修改,修改完毕后新建一个分支到公司账户上(没有gtoken的贡献者权限,只能建分支),提交到github并打标签,发布版本为gtoken1.5.7,然后直接将go.mod中对应的包更改为新的分支包,结果执行go mod tidy后发现报错如下:
PS D:\workspace\go\yurongMall> go mod tidy go: finding module for package github.com/yurongbj/gtoken/gtoken go: found github.com/yurongbj/gtoken/gtoken in github.com/yurongbj/gtoken v1.5.7 go: yurongMall/internal/service imports github.com/yurongbj/gtoken/gtoken: github.com/yurongbj/gtoken@v1.5.7: parsing go.mod: module declares its path as: github.com/goflyfox/gtoken but was required as: github.com/yurongbj/gtoken
搜索网上一堆解决方案,好几处都提到加replace,试着增加后依然报错,折腾一个小时候发现有一处没有进行说明,所以在此发文重点强调一下:网上说的replace是正确的,但前边的require中引入的包是不需要更改的,而我想当然的更改为新的分支包,所以后边的添加replace一直报错,正确的方法其实就是前边的都不用改,只在go.mod最后加一句即可:
replace github.com/goflyfox/gtoken v1.5.6 => github.com/yurongbj/gtoken v1.5.7
2013-2024 LifeAdd生活方式 www.lifeadd.cn 版权所有 | 御融(北京)科技有限公司 All Rights
Reserved
增值电信业务经营许可证:京B2-20200664 | 京ICP备14004911号-7