Hello! 欢迎来到小浪资源网!


Rust依赖传递与Java Maven有何不同?


Rust依赖传递与Java Maven有何不同?

rust 的依赖传递

Java 中,maven 会执行依赖传递,这意味着如果模块 a 依赖于模块 b,而 b 依赖于模块 c,那么 a 也可以使用 c 的内容。然而,在 rust 中,这种情况却并非如此。

rust 中的依赖传递

在 rust 中,cargo 包管理器处理依赖传递。与 maven 不同,rust 的依赖传递是私有的。这意味着:

立即学习Java免费学习笔记(深入)”;

  • 如果一个依赖链为 a -> b -> c,那么 a 只能访问 b 中公开导出的 api。
  • a 无法直接访问 c 里的内容,即使 b 依赖于 c。

解决方法

如果你希望在 a 中访问 c 的内容,需要将 c 作为 a 的直接依赖。例如,假设你有以下依赖链:

a -> b -> c

要让 a 访问 c 的内容,需要将 c 添加到 a 的 cargo.toml 文件中:

# Cargo.toml [dependencies] b = "0.1.0" c = "0.1.0"

相关阅读