【问题标题】:How to patch crates-io with path using Cargo?如何使用 Cargo 用路径修补 crates-io?
【发布时间】:2021-05-29 13:37:41
【问题描述】:

在我的 Rust crate 中,我需要能够使用 2 个在我的 crate 根目录中签出的 git 存储库。它们都经过修改,并且 pkg_b 需要旧版本的 pkg_a0.1.0。我似乎无法让pkg_b 使用更新版本的 pkg_a,0.2.0。我目前的解决方法是只更新 pkg_b 中的 Cargo.toml 文件。

我的箱子的Cargo.toml:

[package]
name = "mypkg"
version = "0.1.0"

[dependencies]
pkg_a = { path = "./pkg_a" } # This is 0.2.0 with my changes added
pkg_b = { path = "./pkg_b" }

[patch.crates-io]
pkg_a = { path = "./pkg_a", features = ["serde_support"] }

还有 pkg​​_b 的Cargo.toml

[package]
name = "pkg_b"
version = "0.1.0"

[dependencies]
pkg_a = { version = "0.1.0", features = ["serde_support"] }

【问题讨论】:

    标签: rust rust-cargo


    【解决方案1】:

    如果pkg_b 需要pkg_a ^0.1.0(意思是“在0.1.00.2.0 之间”,请参阅caret requirements in Cargo),即使您修补注册表,也不能使其接受pkg_a 0.2.0 作为依赖项使本地pkg_a 存储库可被发现。为pkg_b/Cargo.toml 维护补丁似乎是您最好的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 2011-03-22
      • 2021-02-12
      • 2014-09-02
      • 1970-01-01
      相关资源
      最近更新 更多