Rust的cargo没有像maven一样的依赖传递吗?

在JAVA中A->B->C,那么在A中就可以使用C的内容,maven进行了依赖传递。
但是我在Rust中,A->B->C,这个时候A却无法引用C,必须要直接依赖于C,都是同版本的情况。
A -> B ->C
-> C

阅读 1.1k
2 个回答

Rust 的 Cargo 包管理器和 Maven 不同,Rust 的依赖传递是私有的。也就是说,在 Rust 里,如果有一个依赖链 A -> B -> C,那么 A 只能访问 B 中公开导出的 API,而不能直接访问 C 里的内容。你想要在 A 中访问 C 的内容,你要把 C 作为 A 的直接依赖。

rust不存在这个. 依赖什么, 只由自己的 Cargo.toml 确定.

就算同一个包, 在一个项目里, 使用两个版本都没问题.
比如以下, 可以同时使用 foo包的0.1, git, 1.0三个版本, 不冲突.

[dependencies]
foo = "0.1"
bar = { git = "https://github.com/example/project", package = "foo" }
baz = { version = "1.0", package = "foo" }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏