我有一个 Rust 库,它依赖于一个安全的 ***** git 存储库,如下所示:
some-dependency = { git = ssh://secure-repo/project.git }
* 我已经用
net.git-fetch-with-cli = true
配置了货物
存储库已设置为虚拟工作区:
# Cargo.toml in the root of the repo
[workspace]
resolver = "2"
members = [
"some-dependency",
# other members
]
我的会员箱是最普通的:
[package]
name = "some-dependency"
version = "0.1.0"
edition = "2021"
现在,根据 Cargo 书,这应该有效......但 Cargo 顽固地坚持:
error: no matching package named `some-dependency` found
我做的第一件事是深入研究官方文档,然后研究 Rust 的 GitHub 页面上的未解决问题,但发现没有任何帮助。然后我决定建立一个具有完全相同结构的测试存储库,但没有根 Cargo.toml 文件。这奏效了! 我想,无论出于何种原因,Cargo 在偶然发现根 Cargo.toml 并确定其中未定义
some-dependency
后就不会遍历存储库的其余部分。
有人见过这样的事情吗?任何建议或想法都非常感激
我在 GitHub 中创建了另一个具有相同结构和关系的测试设置,并且依赖性已解决。我不知道这个问题可能是什么
好的,问题解决了。对于任何遇到同样情况的人:
TLDR: 罪魁祸首是 Cargo 中被吞没(或根本错误)的错误消息。
给我辛辣的细节
some-dependency
取决于一个板条箱,我们称之为 private-reg-dep
,它是从 private 注册表中获取的。我还没有在我的机器上设置对此注册表的访问权限,因此无法解决private-reg-dep
,不知何故导致货物报告error: no matching package named 'some-dependency' found
。