43、 Dependencies(依赖)
Dependencies(依赖)
一个Package可以依赖其他Package,通过把那些被依赖的Package放在Cargo.toml
文件下的[dependencies]
部分。
指定依赖项的最常见的方式是提供其名称和版本:
[dependencies]
thiserror = "1"
上面的配置将会添加thiserror
作为依赖项到我们自己的package里面,最低版本为1.0.0
,thiserror
将从Rust的官方package注册表crates.io
中拉取到本地。当我们运行cargo build
时,cargo
将经历几个阶段:
- 依赖关系解析
- 下载依赖项
- 编译我们的项目(我们自己的代码和依赖项)
如果我们的项目具有Cargo.lock
文件并且我们的manifest files
没有更改,就会跳过依赖项解析。在成功解决一轮依赖关系后,cargo
会自动生成lockfile
(锁文件):它包含我们项目中所使用的依赖项的确切版本,并用于在不同的构件中一致地使用相同的版本(例如在CI中)。如果我们团队协同开发一个项目,应该将Cargo.lock
文件提交到版本控制系统。
我们可以使用cargo update
命令使用所有依赖项的最新(兼容)版本更新Cargo.lock
文件。
路径依赖
我们也可以使用路径指定依赖项。当我们处理多个本地Package的时候,这将是很有用的方式。
补充
查看Cargo文档,可以了解从何处获取依赖项,以及如何在Cargo.toml
文件中指定依赖项的更多详情。
开发时依赖
我们可以指定仅开发时所需的依赖项——即只有在运行cargo test
时才会引入它们。
它们位于Cargo.toml
文件中的[dev-dependencies]
部分:
[dev-dependencies]
static_assertions = "1.1.0"
练习
这练习还行,挺简单的,让我们修改cargo.toml
文件,引入一个叫做anyhow
的package。
简单贴两张图好了。
这一节的学习就先到这里了。
阅读剩余
版权声明:
作者:CN059
链接:https://www.cn059.com/2025/09/17/43%e3%80%81-dependencies%ef%bc%88%e4%be%9d%e8%b5%96%ef%bc%89.html
文章版权归作者所有,未经允许请勿转载。
THE END