43、 Dependencies(依赖)

Dependencies(依赖)

 

一个Package可以依赖其他Package,通过把那些被依赖的Package放在Cargo.toml文件下的[dependencies]部分。

 

指定依赖项的最常见的方式是提供其名称和版本:

[dependencies]
thiserror = "1"

 

上面的配置将会添加thiserror作为依赖项到我们自己的package里面,最低版本为1.0.0thiserror将从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。

image-20250917151335288

image-20250917151344958

 

简单贴两张图好了。

 

这一节的学习就先到这里了。

阅读剩余
THE END