cargo-vendor(1)

定义

cargo-vendor - 管理所有本地依赖

概要

cargo vendor [options] [path]

说明

此cargo子命令将把项目crates.io和git所有依赖放到指定的 <path> 目录下。 命令完成后,由 <path> 指定的vendor目录将包含所有来自指定依赖的远程资源。 除默认配置清单,还可以用 -s 选项指定其他配置清单。

cargo vendor 命令也会打印出使用外部资源所需的配置,需要将其添加到 .cargo/config.toml 中。

选项

Vendor选项

-s manifest
--sync manifest
为工作空间指定一个额外的Cargo.toml配置清单,将统一管理并同步输出。可以指定多次。
--no-delete
当进行vendor,不删除"vendor"目录,保留vendor目录的所有内容。
--respect-source-config
.cargo/config.toml中默认忽略[source]配置,而是从crates.io下载crate时读取并使用, 比如
--versioned-dirs
通常,添加版本是为了消除同一包的多版本歧义。这个选项使"vendor"目录中的所有目录都版本化,使得追踪包的历史更容易,当只有一部分包发生变化时,可以提升重新版本化的性能。

配置选项

--manifest-path path
Cargo.toml文件路径。 默认情况下,Cargo会在当前目录或任何父目录下搜索Cargo.toml文件。
--frozen
--locked
这些标志都要求 Cargo.lock 文件是最新的。 如果lock文件丢失, 或是需要更新, Cargo会返回错误并退出,--frozen 选项还会阻止cargo通过网络来判断其是否过期。

可以用于断言 Cargo.lock 文件是否最新状态(例如CI构建)或避免网络访问。

--offline
阻止Cargo访问网络。如果不指定该选项,Cargo会在需要使用网络但不可用时停止构建并返回错误。设置该标识,Cargo将尽可能不使用网络完成构建。

需注意,这样可能会导致与在线模式不同的依赖处理,Cargo将限制仅使用已下载到本地的crate,即使本地索引中有更新版本。 查阅 cargo-fetch(1) 命令,在脱机前下载依赖。

也可以用 net.offline 配置

显示选项

-v
--verbose
进行详细输出。可以指定两次来开启 "非常详细" ,输出更多的额外信息,像是依赖项的警告和构建脚本的输出信息。 也可以通过 term.verbose 配置
-q
--quiet
不打印 cargo 日志信息。 也可以用 term.quiet 配置
--color when
使用彩色输出。有效值:

  • auto (默认):自动检测终端是否支持彩色。
  • always: 总是显示彩色。
  • never: 总不显示彩色。

也可以用 term.color 配置

Common Options

+toolchain
如果Cargo已经通过rustup安装,并且第一个传给 cargo 的参数以 + 开头, 则当作rustup的工具链名称。(例如 +stable+nightly). 查阅 rustup 文档 了解关于工具链覆盖的信息。
--config KEY=VALUE or PATH
覆盖Cargo配置项的值,该参数应当为TOML KEY=VALUE 语法, 或者提供附加的配置文件的路径。该标识可以多次指定。 查阅 命令行覆盖部分 获取更多信息
-h
--help
打印帮助信息。
-Z flag
Cargo不稳定的(每日构建)标志。运行 cargo -Z help 了解详情。

环境

查阅 参考 了解Cargo读取环境变量。

退出状态

  • 0: Cargo 执行成功。
  • 101: Cargo 未执行完成。

示例

  1. 将所有的依赖放到本地的 "vendor" 文件夹中。

    cargo vendor
    
  2. 将所有依赖放到本地的 "third-party/vendor" 文件夹中

    cargo vendor third-party/vendor
    
  3. 将当前工作空间以及另一个工作空间改为 "vendor" 。

    cargo vendor -s ../path/to/Cargo.toml
    

参阅

cargo(1)