跳转至
本文阅读量

私有仓库

1. 如何定义并使用自己的包仓库 (Registry)

有以下几种方式 * 通过 CARGO_HOME 的配置文件全局定义 * 通过环境变量定义 * 通过命令行参数定义???

1.1 通过配置文件定义

$CARGO_HOME/.cargo/config.toml 文件中的增加如下配置

[registries]
my-registry = { index = "https://my-intranet:8080/git/index" }

在需要使用的 Rust 工程的 my-project/Cargo.toml 中按照如下格式进行引用

# Sample Cargo.toml
[package]
name = "my-project"
version = "0.1.0"

[dependencies]
other-crate = { version = "1.0", registry = "my-registry" }

1.2 通过环境变量定义

CARGO_REGISTRIES_MY_REGISTRY_INDEX=https://my-intranet:8080/git/index

REGISTRY 的名字是直接如上包含到环境变量名字里吗?

1.3 通过命令行参数定义

cargo login --registry=my-registry
cargo publish --registry=my-registry

cargo login 登录自己的 registry 时的凭证可以记录在 $CARGO_HOME 目录的配置文件里,简化使用

如果自己的工程发布时也是发布到自己的 registry,则也可以在工程的配置文件中指定目标的 registry,从而避免每次都需要在命令行输入参数

[package]
# ...
publish = ["my-registry"]