添加作为虚拟工作空间的 git 依赖项的正确方法是什么

问题描述 投票:0回答:1

我有一个 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 中创建了另一个具有相同结构和关系的测试设置,并且依赖性已解决。我不知道这个问题可能是什么

rust dependencies virtual workspace cargo
1个回答
0
投票

好的,问题解决了。对于任何遇到同样情况的人:

TLDR: 罪魁祸首是 Cargo 中被吞没(或根本错误)的错误消息。

给我辛辣的细节

some-dependency
取决于一个板条箱,我们称之为
private-reg-dep
,它是从 private 注册表中获取的。我还没有在我的机器上设置对此注册表的访问权限,因此无法解决
private-reg-dep
,不知何故导致货物报告
error: no matching package named 'some-dependency' found

© www.soinside.com 2019 - 2024. All rights reserved.