cargo 1.100可用unused_dependencies检查包中未使用的常规依赖和构建依赖。先在包根目录运行cargo check,确认检查涵盖相关目标,再决定是否删除依赖;需要把检查作为失败门禁时,在cargo.toml的[lints.cargo]中设为deny。
从包根目录检查
cargo check cargo check --all-targets
警告会定位到依赖声明。不要立即批量删除:一个依赖可能只被某个二进制、可选功能或特定目标使用,应按工程实际支持的构建组合复核。--all-targets也不会把dev-dependencies变成已完整检查。

Cargo Lint体系通过Cargo.toml设置级别
用Cargo自己的Lint表控制级别
[lints.cargo] unused_dependencies = "deny"
deny将命中的问题变成错误;希望先观察可用warn,临时不检查可用allow。此项由Cargo自身发出,不是向[lints.rust]添加同名项。已有工作区共享Lint时,还应在成员包按原有规则显式继承,避免只在工作区根定义却没有生效。
区分目标选择和包选择
cargo check --bin worker cargo check -p your-package
只选择一个bin时,Cargo无法排除其他目标仍使用[dependencies]条目的可能。-p限制的是被选择的包,路径依赖不会因此像普通编译器Lint一样都被检查。示例中的名称应替换为工程实际目标和包名。

unused_dependencies的多目标和开发依赖限制
删依赖后重新验证支持的构建组合
确认某项确实未使用后,从对应依赖表移除,更新并审阅锁文件,再运行工程原本的编译和测试。dev-dependencies目前不在这项完整检查范围,不出现警告不能证明它们都必要;也不要只根据单一平台检查结果删除其他平台所需依赖。











