使用Cargo时如何覆盖依赖?Diesel升级至2.x版本冲突咨询
问题解答
你的版本强制方式不正确,核心问题在于文件名错误
Cargo并不识别cargo.override.toml这个文件,正确的版本覆盖配置需要放在**项目根目录下的.cargo/config.toml**文件中(注意.cargo是隐藏文件夹,若不存在需先创建)。
正确的强制版本配置步骤
- 删除你创建的
cargo.override.toml文件 - 在项目根目录创建
.cargo文件夹(如无),然后在其中新建config.toml文件,写入以下内容:
[override] diesel = { version = "2.0.4", features = ["postgres","64-column-tables","chrono","serde_json"] } diesel_derives = { version = "2.0.2" }
- 执行
cargo update更新依赖,再运行cargo tree | grep diesel,此时应该只会显示2.x版本的Diesel及其派生库。
关键风险提示
强制公共库使用Diesel 2.x存在编译失败的可能:Diesel 2.x包含大量不兼容变更(比如查询API、宏定义、连接逻辑的修改),依赖旧版的公共库大概率无法直接适配。若出现编译错误,你可以选择:
- 等待该公共库官方发布适配2.x的版本
- Fork公共库并自行修改代码适配Diesel 2.x
- 暂时回退,继续使用Diesel 1.x直到依赖库完成适配
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

