go - Golang 升级不兼容的模块
问题描述
所以我有一个不兼容的 chi 模块版本,我无法使用go get <package-name>
它升级它,只能升级到最新的不兼容版本,而还有很多版本发布。我需要新版本库中不兼容的库中没有的一些功能。go.mod 文件不兼容的库如下所示:
github.com/go-chi/chi v4.0.2+incompatible h1:maB6vn6FqCxrpz4FqWdh4+lwpyZIQS7YEAUcHlgXVRs=
我尝试删除我的模块并再次使用 go mod init 运行,但它仍然给我不兼容的版本。我认为这可能是因为我的项目已连接到我的 bitbucket 存储库。我还尝试从 go 环境中删除模块并再次下载,但结果相同。
我该如何克服这个问题?有没有人有任何想法?也许我也必须从我的存储库中手动清除模块,然后尝试再次初始化它们?
谢谢你。
解决方案
当你想要的版本开始与 Go 模块兼容时,你必须go get
依赖并使用正确的版本化导入路径导入源文件中的包,如文件中所声明的那样 go.mod
。
Chi 的当前go.mod
master 分支将其模块声明为:
module github.com/go-chi/chi/v5
所以:
go get github.com/go-chi/chi/v5
在源文件中:
import "github.com/go-chi/chi/v5"
func main() {
r := chi.NewRouter()
// ...
}
推荐阅读
- r - 创建一个函数来手动计算 R 中的 VIF 值
- java - “Java中的同步块在某个对象上同步”是什么意思..?
- aurelia - 如何在 SystemJS+TS 中显式包含 aurelia-dialog@2.0.0-rc.3 的资源?
- c++ - boost Spirit V2 Qi 语法线程安全吗?
- rabbitmq - 消息系统可靠性
- c# - 通用列表:添加、查找、删除 C#
- javascript - React Carousel renderArrow consts 未定义
- login - Yii2 登录验证密码失败
- ms-access - 使用权。如果记录为空,我该如何更改?
- swift - 使用 RxSwift 联网