cargo-publish(1)
NAME
cargo-publish - Upload a package to the registry
SYNOPSIS
cargo publish [options]
DESCRIPTION
This command will create a distributable, compressed .crate file with the
source code of the package in the current directory and upload it to a
registry. The default registry is https://crates.io. This performs the
following steps:
- Performs a few checks, including:
- Checks the
package.publishkey in the manifest for restrictions on which registries you are allowed to publish to.
- Checks the
- Create a
.cratefile by following the steps in cargo-package(1). - Upload the crate to the registry. Note that the server will perform additional checks on the crate.
This command requires you to be authenticated with either the --token option
or using cargo-login(1).
See the reference for more details about packaging and publishing.
OPTIONS
Publish Options
--dry-run- Perform all checks without uploading.
--tokentoken- API token to use when authenticating. This overrides the token stored in
the credentials file (which is created by cargo-login(1)).
Cargo config environment variables can be used to override the tokens stored in the credentials file. The token for crates.io may be specified with the
CARGO_REGISTRY_TOKENenvironment variable. Tokens for other registries may be specified with environment variables of the formCARGO_REGISTRIES_NAME_TOKENwhereNAMEis the name of the registry in all capital letters. --no-verify- Don't verify the contents by building them.
--allow-dirty- Allow working directories with uncommitted VCS changes to be packaged.
--indexindex- The URL of the registry index to use.
--registryregistry- Name of the registry to publish to. Registry names are defined in Cargo
config files. If not specified, and there is a
package.publishfield inCargo.tomlwith a single registry, then it will publish to that registry. Otherwise it will use the default registry, which is defined by theregistry.defaultconfig key which defaults tocrates-io.
Package Selection
By default, the package in the current working directory is selected. The -p
flag can be used to choose a different package in a workspace.
-pspec--packagespec- The package to publish. See cargo-pkgid(1) for the SPEC format.
Compilation Options
--targettriple- 为指定架构执行 Publish 。默认情况下为本机的架构。三元组的格式为
<arch><sub>-<vendor>-<sys>-<abi>。执行rustc --print target-list可得到支持的构建目标列表。也可通过
build.target指定(config value)。注意,指定该标志参数会使Cargo产生的构建工件放在与平常不同的目录下。 详情参见build cache
--target-dirdirectory- 用于存放生成的工件以及中间文件的目录。也可通过环境变量
CARGO_TARGET_DIR或build.target-dirconfig value指定。默认情况下为根工作区中的
target目录。
特性选择
可通过传递特性参数来控制启用哪些特性。如果没有给定要使用的特性,
则每个已选择的包都会自动使用default特性。
--featuresfeatures- 传递以空格或者逗号分隔的列表,其中给出要启用的特性。工作区成员的特性可通过
包名/特性名的语法启用。 此参数可多次给定,以分别启用给定的特性。 --all-features- 为给定的包启用全部可用特性
--no-default-features- 不启用给定包的
default特性
Manifest Options
--manifest-pathpath- 用于指定
Cargo.toml文件的路径。默认情况下,Cargo会在当前目录或上级目录中寻找Cargo.toml文件。 --frozen--locked- 这两个选项用于保证
Cargo.lock文件是最新的。如果该锁文件不存在,或者不是最新的,Cargo 会报错退出。其中--frozen选项会阻止Cargo访问网络以检查锁文件是否是最新的。这些选项,可用于保证
Cargo.lock文件是最新的(比如持续集成的构建过程), 或用于避免联网。 --offline- 禁止Cargo访问网络。如果不添加此选项,Cargo在需要访问网络但网络不可用的情况下,会报错
并停止工作。添加此选项后,Cargo会尽可能尝试不使用网络来工作。
注意,在此情况下可能会产生与联网状态下不同的依赖解析(Dependency Resolution)结果。 Cargo只会使用本地已下载的crate,即便本地的索引副本中表明可能有新版本crate。在离线前下载 所需依赖的方法,参见 cargo-fetch(1) 。
也可以通过
net.offlineconfig value指定。
Miscellaneous Options
-jN--jobsN- 要并行运行的作业数量。也可通过
build.jobsconfig value指定。 默认为CPU数量。
Display Options
-v--verbose- 启用更加详细的输出。可两次使用来显示"非常详细"的输出,其中包含了诸如 依赖警告 以及 构建脚本输出 等额外的输出内容。
也可通过
term.verbose指定。 config value. -q--quiet- 不输出Cargo的日志信息。也可通过
term.quiet指定。 config value. --colorwhen- 控制输出内容的颜色。有效取值如下:
auto(默认):自动检测终端是否支持带颜色的输出。always:总显示带颜色的输出。never:从不显示带颜色的输出。
也可通过
term.color指定。 config value.
Common Options
+toolchain- If Cargo has been installed with rustup, and the first argument to
cargobegins with+, it will be interpreted as a rustup toolchain name (such as+stableor+nightly). See the rustup documentation for more information about how toolchain overrides work. -h--help- Prints help information.
-Zflag- Unstable (nightly-only) flags to Cargo. Run
cargo -Z helpfor details.
环境
关于Cargo所读取的环境变量,可参见the reference
退出状态
0: Cargo命令执行成功101: Cargo命令未能完成.
EXAMPLES
-
Publish the current package:
cargo publish