我有在这取决于最终依赖链可选上弃用库.具体来说,我想使用nalgebra,它间接依赖于rustc-serialize,如下所示:
nalgebra - > alga - > num-complex - >(可选默认值)rustc-serialize
我可以在我的Cargo.toml文件中列出num-complex依赖关系并关闭可选的rustc-serialize依赖项(num-complex = { version = "0.1.42", default-features = false }),但有没有办法在Cargo.toml链中一直关闭此选项?
我已经尝试了克隆其中每一个并操纵本地副本的Cargo.toml文件以引用所有本地依赖项的替代方法,但是如果可能的话,我想要一种更易于维护的方法来执行此操作.
我相当确定目前这是不可能的。我研究过使用 Cargo[patch] 部分来执行此操作,但看起来您实际上无法在补丁部分中指定功能,而只能覆盖给定依赖项的路径或 git url。
但是,使用此部分,您可以使您的解决方法更加简洁。只需分叉 num-complex 并rustc-serialize从默认值中删除该功能即可。使用货物补丁为你的叉子提供如下所示:
[patch.crates-io]
num-complex = { git = "https://github.com/your-github-name/num-complex.git" }
Run Code Online (Sandbox Code Playgroud)
这样,您的分叉将在依赖链中一直使用,而无需单独更改每个箱子。
正如我之前提到的,default-features = false在本节中指定似乎没有任何作用。从 Cargo 的代码来看,我不认为这是一个错误,只是缺乏功能或设计决策。(毕竟,在一般情况下,像这样搞乱依赖关系并不是一个好主意)。
| 归档时间: |
|
| 查看次数: |
929 次 |
| 最近记录: |