You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

指定axum 0.7.9却自动安装0.8.1,依赖冲突如何解决?

Axum 0.7.9与0.8.1依赖冲突问题解决(Utoipa引发)

问题核心是你当前使用的Utoipa系列依赖版本和axum 0.7.9不兼容,导致Cargo被迫同时拉取两个版本的axum来满足依赖链要求——清理Cargo.lock和target目录没用,是因为核心的版本约束冲突没解决。

解决步骤:

  1. 定位冲突来源
    执行cargo tree -p axum命令,能清晰看到哪个依赖在拉取axum 0.8.1。大概率是utoipa-swagger-ui 8.0.3的axum特性要求axum >=0.8,而utoipa-axum 0.1.2也默认依赖axum 0.8+版本。

  2. 调整Utoipa版本适配axum 0.7.9
    修改你的Cargo.toml,换成兼容axum 0.7.x的Utoipa系列版本:

    tokio = { version = "1.42.0", features = ["rt-multi-thread"] }
    axum = { version = "0.7.9", features = ["json", "multipart", "query", "tokio"] }
    utoipa = { version = "5.2.0", features = ["axum_extras"] }
    utoipa-axum = { version = "0.1.1", features = ["axum_0_7"] }
    utoipa-swagger-ui = { version = "7.0.0", features = ["axum"] }
    axum-server = { version = "0.7.1", features = ["tls-rustls"] }
    
    • utoipa-axum 0.1.1的axum_0_7特性专门适配axum 0.7版本
    • utoipa-swagger-ui 7.x分支对应支持axum 0.7,8.x则要求axum 0.8+
  3. 强制锁死axum版本(备选方案)
    如果不想调整Utoipa版本,可以在Cargo.toml中添加patch配置,强制所有依赖使用axum 0.7.9:

    [patch.crates-io]
    axum = { version = "0.7.9" }
    

    注意:这个方法会忽略其他依赖对axum的版本要求,可能引发潜在兼容性问题,需要做好测试。

  4. 验证修复
    执行cargo update更新依赖,再用cargo tree -p axum确认只有axum 0.7.9被引用,最后执行cargo build检查构建是否成功。

内容的提问来源于stack exchange,提问作者Grimlock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:40:07