cargo-add(1)
名称
cargo-add — 将依赖项添加到 Cargo.toml 清单文件
概要
cargo add
[选项] crate…
cargo add
[选项] --path
路径
cargo add
[选项] --git
url [crate…]
描述
此命令可以添加或修改依赖项。
可以使用以下方式指定依赖项的来源
- crate
@
版本:从注册表中获取,版本约束为“版本” --path
路径:从指定的路径获取--git
url:从 url 处的 git 仓库拉取
如果未指定来源,则将尽最大努力选择一个来源,包括
- 其他表(如
dev-dependencies
)中的现有依赖项 - 工作空间成员
- 注册表中的最新版本
当您添加已经存在的包时,现有条目将使用指定的标志进行更新。
成功调用后,指定依赖项的启用 (+
) 和禁用 (-
) 功能 将列在命令的输出中。
选项
来源选项
--git
url- 要添加指定 crate 的 Git URL.
--branch
分支- 从 git 添加时要使用的分支。
--tag
标签- 从 git 添加时要使用的标签。
--rev
sha- 从 git 添加时要使用的特定提交。
--path
路径- 文件系统路径,指向要添加的本地 crate。
--registry
注册表- 要使用的注册表的名称。注册表名称在 Cargo 配置文件 中定义。如果未指定,则使用默认注册表,该注册表由
registry.default
配置键定义,默认为crates-io
。
部分选项
--dev
- 添加为 开发依赖项。
--build
- 添加为 构建依赖项。
--target
目标- 添加为 给定目标平台 的依赖项。
为避免意外的 shell 扩展,您可以在每个目标周围使用引号,例如
--target 'cfg(unix)'
。
依赖项选项
--dry-run
- 不要实际写入清单
--rename
名称- 重命名 依赖项。
--optional
- 将依赖项标记为 可选。
--no-optional
- 将依赖项标记为 必需。
--public
- 将依赖项标记为公开。
可以在库的公共 API 中引用该依赖项。
--no-public
- 将依赖项标记为私有。
虽然您可以在实现中使用该 crate,但不能在公共 API 中引用它。
--no-default-features
- 禁用 默认功能。
--default-features
- 重新启用 默认功能。
-F
功能--features
功能- 要激活的 功能 的空格或逗号分隔列表。添加多个 crate 时,可以使用
package-name/feature-name
语法启用特定 crate 的功能。此标志可以指定多次,以启用所有指定的功能。
显示选项
-v
--verbose
- 使用详细输出。可以指定两次以获得“非常详细”的输出,其中包括额外的输出,例如依赖项警告和构建脚本输出。也可以使用
term.verbose
配置值 指定。 -q
--quiet
- 不打印 cargo 日志消息。也可以使用
term.quiet
配置值 指定。 --color
何时- 控制何时使用彩色输出。有效值
auto
(默认):自动检测终端上是否支持彩色。always
:始终显示颜色。never
:从不显示颜色。
也可以使用
term.color
配置值 指定。
清单选项
--manifest-path
路径Cargo.toml
文件的路径。默认情况下,Cargo 在当前目录或任何父目录中搜索Cargo.toml
文件。-p
规范--package
规范- 仅将依赖项添加到指定的包。
--ignore-rust-version
- 忽略包中的
rust-version
规范。 --locked
- 断言使用的依赖项和版本与最初生成现有
Cargo.lock
文件时完全相同。当出现以下任一情况时,Cargo 将退出并报错- 缺少锁文件。
- 由于依赖项解析不同,Cargo 尝试更改锁定文件。
它可以用于需要确定性构建的环境中,例如 CI 管道。
--offline
- 阻止 Cargo 出于任何原因访问网络。如果没有此标志,Cargo 在需要访问网络但网络不可用时将停止并报错。使用此标志,Cargo 将尝试在可能的情况下在没有网络的情况下继续。
请注意,这可能会导致与在线模式不同的依赖项解析。Cargo 会将自身限制为本地下载的 crate,即使本地索引副本中指示可能有更新的版本。请参阅 cargo-fetch(1) 命令以下载依赖项,然后再进入离线模式。
也可以使用
net.offline
配置值 指定。 --frozen
- 等效于同时指定
--locked
和--offline
。
常用选项
+
toolchain- 如果 Cargo 是使用 rustup 安装的,并且
cargo
的第一个参数以+
开头,它将被解释为 rustup 工具链名称(例如+stable
或+nightly
)。有关工具链覆盖如何工作的更多信息,请参阅 rustup 文档。 --config
KEY=VALUE 或 PATH- 覆盖 Cargo 配置值。参数应采用
KEY=VALUE
的 TOML 语法,或作为额外配置文件的路径提供。此标志可以指定多次。有关更多信息,请参阅 命令行覆盖部分。 -C
PATH- 在执行任何指定的操作之前更改当前工作目录。这会影响 Cargo 默认查找项目清单 (
Cargo.toml
) 的位置,以及搜索.cargo/config.toml
的目录等。此选项必须出现在命令名称之前,例如cargo -C path/to/my-project build
。此选项仅在 夜间版通道 上可用,并且需要
-Z unstable-options
标志才能启用(请参阅 #10098)。 -h
--help
- 打印帮助信息。
-Z
flag- Cargo 的不稳定(仅限夜间版)标志。运行
cargo -Z help
以获取详细信息。
环境
有关 Cargo 读取的环境变量的详细信息,请参阅 参考。
退出状态
0
:Cargo 成功。101
:Cargo 未能完成。
示例
-
添加
regex
作为依赖项cargo add regex
-
添加
trybuild
作为开发依赖项cargo add --dev trybuild
-
添加旧版本的
nom
作为依赖项cargo add nom@5
-
添加对使用
derive
将数据结构序列化为 json 的支持cargo add serde serde_json -F serde/derive
-
在
cfg(windows)
上添加windows
作为特定于平台的依赖项cargo add windows --target 'cfg(windows)'