Skip to content

Latest commit

 

History

History
248 lines (177 loc) · 13.3 KB

cargo-package.zh.md

File metadata and controls

248 lines (177 loc) · 13.3 KB

cargo-package(1)

NAME

Cargo包装-将本地包装组装成可分配的沥青球

SYNOPSIS

cargo package [options]

DESCRIPTION

此命令将创建一个可分发的、压缩的.crate包含当前目录中包的源代码的文件。生成的文件将存储在target/package目录这将执行以下步骤:

  1. 加载并检查当前工作区,执行一些基本检查。
    • 除非具有版本密钥,否则不允许路径依赖关系。Cargo将忽略已发布包中依赖项的路径键。dev-dependencies没有这个限制。
  2. 创建压缩的.crate文件
    • 原著Cargo.toml文件被重写和规范化。
    • [patch], [replace][workspace]部分将从清单中删除。
    • Cargo.lock如果包包含可执行二进制文件或示例目标,则会自动包含。cargo-install(1)如果--locked国旗被使用。
    • A..cargo_vcs_info.json包含包含有关当前VCS签出哈希(如果可用)信息的文件(不包括在--allow-dirty).
  3. 提取.crate归档并构建它,以验证它是否可以构建。
    • 这将从头开始重建包,以确保它可以从原始状态构建。这个--no-verify标记可用于跳过此步骤。
  4. 检查生成脚本是否未修改任何源文件。

包含的文件列表可以通过includeexclude清单中的字段。

查看the reference有关打包和发布的更多详细信息。

.cargo_vcs_info.json format

将产生.cargo_vcs_info.json按以下格式

{
 "git": {
   "sha1": "aac20b6e7e543e6dd4118b246c77225e3a3a1302"
 },
 "path_in_vcs": ""
}

path_in_vcs将设置为版本控制存储库子目录中的包的repo相对路径。

OPTIONS

Package Options

-l
--list
Print files included in a package without making one.
--no-verify
Don't verify the contents by building them.
--no-metadata
Ignore warnings about a lack of human-usable metadata (such as the description or the license).
--allow-dirty
Allow working directories with uncommitted VCS changes to be packaged.

Package Selection

默认情况下,如果未提供包选择选项,则选择的包取决于选择的清单文件(如果需要,则基于当前工作目录)--manifest-path未给出)。如果清单是工作区的根目录,则会选择工作区默认成员,否则只会选择清单定义的包。

可以使用workspace.default-members输入根清单。如果未设置,虚拟工作区将包括所有工作区成员(相当于传递)--workspace),非虚拟工作区将只包括根箱子本身。

-p spec...
--package spec...
Package only the specified packages. See cargo-pkgid(1) for the SPEC format. This flag may be specified multiple times and supports common Unix glob patterns like *, ? and []. However, to avoid your shell accidentally expanding glob patterns before Cargo handles them, you must use single quotes or double quotes around each pattern.
--workspace
Package all members in the workspace.
--exclude SPEC...
Exclude the specified packages. Must be used in conjunction with the --workspace flag. This flag may be specified multiple times and supports common Unix glob patterns like *, ? and []. However, to avoid your shell accidentally expanding glob patterns before Cargo handles them, you must use single quotes or double quotes around each pattern.

Compilation Options

--target triple
Package for the given architecture. The default is the host architecture. The general format of the triple is <arch><sub>-<vendor>-<sys>-<abi>. Run rustc --print target-list for a list of supported targets.

This may also be specified with the build.target config value.

Note that specifying this flag makes Cargo run in a different mode where the target artifacts are placed in a separate directory. See the build cache documentation for more details.

--target-dir directory
Directory for all generated artifacts and intermediate files. May also be specified with the CARGO_TARGET_DIR environment variable, or the build.target-dir config value. Defaults to target in the root of the workspace.

Feature Selection

功能标志允许您控制启用哪些功能。如果未提供任何功能选项,则default为每个选定的软件包激活该功能。

查看the features documentation更多细节。

--features features
Space or comma separated list of features to activate. Features of workspace members may be enabled with package-name/feature-name syntax. This flag may be specified multiple times, which enables all specified features.
--all-features
Activate all available features of all selected packages.
--no-default-features
Do not activate the default feature of the selected packages.

Manifest Options

--manifest-path path
Path to the Cargo.toml file. By default, Cargo searches for the Cargo.toml file in the current directory or any parent directory.
--frozen
--locked
Either of these flags requires that the Cargo.lock file is up-to-date. If the lock file is missing, or it needs to be updated, Cargo will exit with an error. The --frozen flag also prevents Cargo from attempting to access the network to determine if it is out-of-date.

These may be used in environments where you want to assert that the Cargo.lock file is up-to-date (such as a CI build) or want to avoid network access.

--offline
Prevents Cargo from accessing the network for any reason. Without this flag, Cargo will stop with an error if it needs to access the network and the network is not available. With this flag, Cargo will attempt to proceed without the network if possible.

Beware that this may result in different dependency resolution than online mode. Cargo will restrict itself to crates that are downloaded locally, even if there might be a newer version as indicated in the local copy of the index. See the cargo-fetch(1) command to download dependencies before going offline.

May also be specified with the net.offline config value.

Miscellaneous Options

-j N
--jobs N
Number of parallel jobs to run. May also be specified with the build.jobs config value. Defaults to the number of CPUs.

Display Options

-v
--verbose
Use verbose output. May be specified twice for "very verbose" output which includes extra output such as dependency warnings and build script output. May also be specified with the term.verbose config value.
-q
--quiet
Do not print cargo log messages. May also be specified with the term.quiet config value.
--color when
Control when colored output is used. Valid values:

  • auto (default): Automatically detect if color support is available on the terminal.
  • always: Always display colors.
  • never: Never display colors.

May also be specified with the term.color config value.

Common Options

+toolchain
If Cargo has been installed with rustup, and the first argument to cargo begins with +, it will be interpreted as a rustup toolchain name (such as +stable or +nightly). See the rustup documentation for more information about how toolchain overrides work.
-h
--help
Prints help information.
-Z flag
Unstable (nightly-only) flags to Cargo. Run cargo -Z help for details.

ENVIRONMENT

查看the reference有关Cargo读取的环境变量的详细信息。

EXIT STATUS

  • 0:Cargo成功。
  • 101:Cargo未能完成。

EXAMPLES

  1. 创建一个压缩文件.crate当前包的文件:

    Cargo包装

SEE ALSO

cargo(1), cargo-publish(1)