第51章 Cargo locate-project 命令详解:以 JSON 形式输出项目路径
名称
cargo-locate-project —— 以 JSON 形式输出 Cargo.toml 文件的位置
摘要
cargo locate-project [选项]
描述
该命令向 stdout 输出一个 JSON 对象,其中包含 manifest 的完整路径。程序会从当前工作目录开始向上查找,寻找名为 Cargo.toml 的文件,以此定位 manifest。
若项目属于某个 workspace 的一部分,命令会输出该项目自身的 manifest,而非 workspace 根目录的 manifest。可以使用 --workspace 标志覆盖此行为。根 workspace 通过继续向上遍历查找,或在定位 workspace 成员的 manifest 后读取 package.workspace 字段来确定。
选项
--workspace-
定位位于 workspace 根目录的
Cargo.toml,而非当前 workspace 成员的文件。
显示选项
--message-formatfmt-
指定输出项目位置时的表现形式。有效值如下:
json(默认):输出 JSON 对象,路径位于 "root" 键下。plain:仅输出路径。
-v--verbose-
使用详细输出。指定两次可输出“非常详细”的信息,包括依赖警告和构建脚本输出等额外内容。也可配合
term.verbose配置项使用。 -q--quiet-
不打印 cargo 日志消息。 也可通过
term.quiet配置项指定。 --colorwhen-
控制何时使用彩色输出。有效值:
auto(默认值):自动检测终端是否支持颜色。always:始终显示颜色。never:从不显示颜色。
也可通过
term.color配置项指定。
Manifest Options
--manifest-pathpath-
Cargo.toml文件的路径。默认情况下,Cargo 会在当前目录或任何父目录中查找Cargo.toml文件。
Common Options
+toolchain-
如果 Cargo 是通过 rustup 安装的,且
cargo的第一个参数以+开头,它将被解释为 rustup 工具链名称(例如+stable或+nightly)。 有关工具链覆盖机制的更多信息,请参阅 rustup 文档。 --configKEY=VALUE 或 PATH-
覆盖 Cargo 的配置项。参数可以是
KEY=VALUE形式的 TOML 语法,也可以是额外配置文件的路径。此标志可以多次指定。详见命令行覆盖部分。 -CPATH-
在执行任何指定操作前切换当前工作目录。这会影响 Cargo 默认查找项目清单(
Cargo.toml)的位置,以及搜索.cargo/config.toml的目录等。此选项必须出现在命令名之前,例如cargo -C path/to/my-project build。此选项仅在 nightly 渠道可用,且需要启用
-Z unstable-options标志(见 #10098)。 -h--help-
打印帮助信息。
-Zflag-
Cargo 的不稳定(仅限 nightly)标志。运行
cargo -Z help查看详情。
环境变量
Cargo 读取的环境变量详见参考文档。
退出状态
0:Cargo 执行成功。101:Cargo 执行失败。
示例
-
根据当前目录,显示 manifest 文件的路径:
cargo locate-project