是否可以指定多个依赖版本?

时间:2019-05-27 08:55:29

标签: rust rust-cargo

我正在使用一个根据我正在使用的其他包装箱而中断的库。解决方法是降级一些依赖项并保留该库的本地版本。

在货物中,有没有办法指定两个MyLibraryDep版本对我的图书馆有效?

如果我将MyLibraryDep = {version = "*"}放在Cargo.toml中,它将起作用。由于Cargo随后会自动修复依赖关系,但crates.io不允许这样做。

示例:

  • 如果使用MyLibraryLibraryA,我必须在MyLibraryDep v0.1.0中使用MyLibrary

  • 如果使用MyLibraryLibraryB,我必须在MyLibraryDep v0.2.0中使用MyLibrary

1 个答案:

答案 0 :(得分:4)

按照《货运手册》中的规定,您可以使用inequality requirements和多个要求组合形成一系列有效版本。

MyLibraryDep = {version = ">=0.1.0, <=0.2.0"}

这种要求还将使Cargo选择合适的版本,并且应由crates.io允许。