Cargo包装-将本地包装组装成可分配的沥青球
cargo package
[options]
此命令将创建一个可分发的、压缩的.crate
包含当前目录中包的源代码的文件。生成的文件将存储在target/package
目录这将执行以下步骤:
- 加载并检查当前工作区,执行一些基本检查。
- 除非具有版本密钥,否则不允许路径依赖关系。Cargo将忽略已发布包中依赖项的路径键。
dev-dependencies
没有这个限制。
- 除非具有版本密钥,否则不允许路径依赖关系。Cargo将忽略已发布包中依赖项的路径键。
- 创建压缩的
.crate
文件- 原著
Cargo.toml
文件被重写和规范化。 [patch]
,[replace]
和[workspace]
部分将从清单中删除。Cargo.lock
如果包包含可执行二进制文件或示例目标,则会自动包含。cargo-install(1)如果--locked
国旗被使用。- A.
.cargo_vcs_info.json
包含包含有关当前VCS签出哈希(如果可用)信息的文件(不包括在--allow-dirty
).
- 原著
- 提取
.crate
归档并构建它,以验证它是否可以构建。- 这将从头开始重建包,以确保它可以从原始状态构建。这个
--no-verify
标记可用于跳过此步骤。
- 这将从头开始重建包,以确保它可以从原始状态构建。这个
- 检查生成脚本是否未修改任何源文件。
包含的文件列表可以通过include
和exclude
清单中的字段。
查看the reference有关打包和发布的更多详细信息。
将产生.cargo_vcs_info.json
按以下格式
{
"git": {
"sha1": "aac20b6e7e543e6dd4118b246c77225e3a3a1302"
},
"path_in_vcs": ""
}
path_in_vcs
将设置为版本控制存储库子目录中的包的repo相对路径。
-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.
默认情况下,如果未提供包选择选项,则选择的包取决于选择的清单文件(如果需要,则基于当前工作目录)--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.
--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>
. Runrustc --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 thebuild.target-dir
config value. Defaults totarget
in the root of the workspace.
功能标志允许您控制启用哪些功能。如果未提供任何功能选项,则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-path
path- Path to the
Cargo.toml
file. By default, Cargo searches for theCargo.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.
-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.
-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.
+
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.
查看the reference有关Cargo读取的环境变量的详细信息。
0
:Cargo成功。101
:Cargo未能完成。
-
创建一个压缩文件
.crate
当前包的文件:Cargo包装