Turn off default-features in dependency of dependency
我有一连串的依赖关系,这些依赖关系最终取决于可选的不赞成使用的库。具体来说,我想使用nalgebra,它间接依赖于rustc-serialize,如下所示:
nalgebra-> alga-> num-complex->(可选默认值)rustc-serialize
我可以在我的Cargo.toml文件中列出num-complex依赖项,并关闭可选的rustc-serialize依赖项(
我尝试了一种替代方法,即克隆每个副本并处理本地副本。 Cargo.toml文件可引用所有本地依赖项,这是可行的,但我希望有一种更可维护的方式来做到这一点。
正如H2O所述,这是不可能的,但是请检查他们的答案以找到一个好的临时解决方法,以使事情再次起作用。我想讨论为什么它不可能以及长期解决方案是什么。
通常,您无法确定一个板条箱使用了什么依赖项。海藻完全有可能在内部使用num-complex的rustc-serialize功能。
正确的做法是向上跟踪依赖关系链。转至每个项目并添加一个功能,以选择其直接依赖项的rustc-serialize功能。您还可以将
您要么最终可以向项目提交PR,以改善每个人的情况,要么您就会明白为什么您认为可选的实际上不是必需的。
我相当确定这是当前不可能的。我考虑使用Cargo的
使用此部分,您可以使解决方法更整洁。只需派生num-complex并从默认值中删除
1 2 | [patch.crates-io] num-complex = { git ="https://github.com/your-github-name/num-complex.git" } |
这样一来,您的fork将在依赖链中被完全使用,而不必单独更改每个板条箱。
正如我前面提到的,
在本节中指定