You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Cargo工作区中所有crate运行rustdoc lint检查?

解决Cargo工作区全量Rustdoc lint检查的官方方法

不用再折腾xargs了,官方有更简洁高效的原生方案,主要有这几种:

  • 通过环境变量+cargo doc --workspace一次性检查
    cargo doc本身支持--workspace参数,配合RUSTDOCFLAGS环境变量就能给所有工作区crate传递lint规则,命令如下:

    RUSTDOCFLAGS="-D rustdoc::broken-intra-doc-links" cargo doc --workspace --no-deps
    

    加--no-deps是为了只检查你自己的工作区crate,跳过第三方依赖的文档生成,节省时间和资源。

  • 通过Cargo配置文件持久化规则
    如果不想每次都手动输入环境变量,可以在工作区根目录的.cargo/config.toml里添加配置,之后直接执行cargo doc --workspace --no-deps就会自动应用lint规则:

    [build]
    rustdocflags = ["-D", "rustdoc::broken-intra-doc-links"]
    

    要是只想在CI环境生效,也可以单独写一个config-ci.toml,然后通过CARGO_CONFIG环境变量指定加载:

    CARGO_CONFIG=./.cargo/config-ci.toml cargo doc --workspace --no-deps
    
  • CI场景的落地示例
    以GitHub Actions为例,直接把环境变量和命令整合到CI脚本里即可,Cargo会自动并行处理工作区的crate,效率比xargs高得多:

    jobs:
      doc-lint:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: dtolnay/rust-toolchain@stable
          - name: Run workspace-wide rustdoc lints
            run: RUSTDOCFLAGS="-D rustdoc::broken-intra-doc-links" cargo doc --workspace --no-deps
    

这些都是官方原生支持的方案,不需要额外工具,能高效覆盖工作区所有crate的文档lint检查。

内容的提问来源于stack exchange,提问作者Derek Thurn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 06:00:47