cargo-publish(1)
定义
cargo-publish - 上传包到注册中心
概要
cargo publish
[options]
说明
该命令将在当前目录下创建一个待分发的、压缩的 .crate
文件,其中包含包的源代码,并将其上传到注册中心。
默认的注册中心是 https://crates.io 。将执行以下步骤:
- 进行一些检查,包括:
- 检查配置清单中的
package.publish
键,看是否限制发布到哪些注册中心。
- 检查配置清单中的
- 按照 cargo-package(1) 中的步骤,创建
.crate
文件。 - 将crate上传到注册中心。需注意,服务器将对crate进行额外的检查。
该命令要求您使用 --token
选项或使用 cargo-login(1) 进行认证。
见 参考 了解关于包和发布的详情。
选项
发布选项
--dry-run
- 在不上传的情况下执行所有检查。
--token
token- 认证时要使用的 API token。这将覆盖存储在证书文件中的令牌(由 cargo-login(1))。
Cargo配置环境变量可用于覆盖存储在证书文件中的令牌。 crates.io的令牌可以用
CARGO_REGISTRY_TOKEN
环境变量指定。其他注册中心的令牌可以用以下形式的环境变量来指定CARGO_REGISTRIES_NAME_TOKEN
其NAME
是注册中心的名称,全部大写字母。 --no-verify
- 不通过构建来验证内容。
--allow-dirty
- 允许将带有未提交修改内容的VCS工作目录打包。
--index
index- 使用的注册中心索引URL。
--registry
registry- 要发布到的注册中心名称,定义在 Cargo 配置文件。 如果未指定, 在
Cargo.toml
package.publish
字段有单独的键, 那么将发布到该注册中心。 否则,将使用默认的注册中心, 由registry.default
键定义, 默认为crates-io
。
包的选择
默认情况下,选中当前工作目录下的包。可用 -p
标志选择工作空间中不同的包。
-p
spec--package
spec- 要发布的包,见 cargo-pkgid(1) 了解 SPEC 规格。
编译选项
--target
triple- 对于给定架构发布。默认是主机的架构。常规格式是三元组
<arch><sub>-<vendor>-<sys>-<abi>
。 运行rustc --print target-list
获得支持的目标列表。 这个标志可被多次指定。也可以通过
build.target
配置。注意,指定这个标志会使Cargo在不同的模式下运行,目标制品放在单独目录。 参见 构建缓存 文档了解详情。
--target-dir
directory- 所有生成制品和中间文件的目录。 也可以用
CARGO_TARGET_DIR
环境变量, 或build.target-dir
配置。 默认为工作空间的根target
。
特性选择
特性标志允许你控制开启哪些特性。当没有提供特性选项时,会为每个选择的包启用 default
特性。
见 特性文档 了解更多内容。
-F
features--features
features- 激活的特性列表用空格或逗号分隔。可以用
package-name/feature-name
语法启用工作空间成员的特性。这个标志可以被多次指定,从而可以启用所有指定的特性。 --all-features
- 激活所有选定包的所有可用特性。
--no-default-features
- 不激活所选包的
default
特性。
配置选项
--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
配置。
其它选项
-j
N--jobs
N- 并行执行的任务数。可以通过
build.jobs
配置。默认值为逻辑CPU数。如果设置为负值,则最大的并行任务数为*逻辑CPU数*加*这个负数*。该值不能为0。 --keep-going
- 尽可能的构建依赖图中的 crate ,而不是一个失败就停止。功能还不稳定,需要
-Zunstable-options
。
Display Options
-v
--verbose
- 进行详细输出。可以指定两遍来开启 "非常详细" 模式,输出更多的额外信息,像是依赖项的警告和构建脚本的输出信息。
也可以通过
term.verbose
配置 。 -q
--quiet
- 不打印 cargo 日志信息。
也可以通过
term.quiet
配置。 --color
when- 控制使用彩色输出。可选值有:
auto
(默认值): 自动检测终端是否支持彩色输出。always
: 总是显示彩色。never
: 从不显示彩色。
也可以在
term.color
配置。
常规选项
+
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 没有成功完成。
示例
-
发而当前的包:
cargo publish