入门 The Cargo Team 2026-09-13 15:48:22 · 0 阅读

第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-format fmt

指定输出项目位置时的表现形式。有效值如下:

  • json(默认):输出 JSON 对象,路径位于 "root" 键下。
  • plain:仅输出路径。
-v
--verbose

使用详细输出。指定两次可输出“非常详细”的信息,包括依赖警告和构建脚本输出等额外内容。也可配合 term.verbose 配置项使用。

-q
--quiet

不打印 cargo 日志消息。 也可通过 term.quiet 配置项指定。

--color when

控制何时使用彩色输出。有效值:

  • auto(默认值):自动检测终端是否支持颜色。
  • always:始终显示颜色。
  • never:从不显示颜色。

也可通过 term.color 配置项指定。

Manifest Options

--manifest-path path

Cargo.toml文件的路径。默认情况下,Cargo 会在当前目录或任何父目录中查找 Cargo.toml 文件。

Common Options

+toolchain

如果 Cargo 是通过 rustup 安装的,且 cargo 的第一个参数以 + 开头,它将被解释为 rustup 工具链名称(例如 +stable+nightly)。 有关工具链覆盖机制的更多信息,请参阅 rustup 文档

--config KEY=VALUEPATH

覆盖 Cargo 的配置项。参数可以是 KEY=VALUE 形式的 TOML 语法,也可以是额外配置文件的路径。此标志可以多次指定。详见命令行覆盖部分

-C PATH

在执行任何指定操作前切换当前工作目录。这会影响 Cargo 默认查找项目清单(Cargo.toml)的位置,以及搜索 .cargo/config.toml 的目录等。此选项必须出现在命令名之前,例如 cargo -C path/to/my-project build

此选项仅在 nightly 渠道可用,且需要启用 -Z unstable-options 标志(见 #10098)。

-h
--help

打印帮助信息。

-Z flag

Cargo 的不稳定(仅限 nightly)标志。运行 cargo -Z help 查看详情。

环境变量

Cargo 读取的环境变量详见参考文档

退出状态

  • 0:Cargo 执行成功。
  • 101:Cargo 执行失败。

示例

  1. 根据当前目录,显示 manifest 文件的路径:

    cargo locate-project
    

另请参阅

cargo(1)cargo-metadata(1)

评论 (0)