如何使用cargo add向Workspace.dependencies添加依赖并指定关联包?
在Rust工作区中用
cargo add管理工作区依赖 当然可以用cargo add将依赖添加到工作区清单,同时还能自动关联指定的子包,无需手动编辑配置文件,具体操作如下:
1. 添加依赖到工作区并关联单个子包
使用--workspace参数告诉Cargo将依赖写入根目录的Cargo.toml的[workspace.dependencies]区块,再用--package指定要关联的子包,Cargo会自动在该子包的Cargo.toml中添加workspace = true的引用:
cargo add <PACKAGE> --workspace --package <SUBPACKAGE_NAME>
2. 添加依赖到工作区并关联多个子包
如果需要同时给多个子包关联新的工作区依赖,可以重复使用--package参数:
cargo add <PACKAGE> --workspace --package <SUBPACKAGE1> --package <SUBPACKAGE2>
3. 仅添加依赖到工作区清单(不关联子包)
如果只想先把依赖注册到工作区,之后再给子包添加引用,直接执行:
cargo add <PACKAGE> --workspace
后续需要给子包关联时,执行cargo add <PACKAGE> --package <SUBPACKAGE_NAME>即可,Cargo会自动识别工作区中已有的依赖版本,生成{ workspace = true }的配置。
示例操作
假设你的工作区要添加tokio依赖,并关联package_1和package_2,执行命令:
cargo add tokio --workspace --package package_1 --package package_2
执行后:
- 根目录
Cargo.toml的[workspace.dependencies]会新增tokio = "<最新兼容版本>" package_1/Cargo.toml和package_2/Cargo.toml的[dependencies]会新增tokio = { workspace = true }
内容的提问来源于stack exchange,提问作者jonasty
相关产品推荐
相关产品推荐

