首页 > 解决方案 > 如何使用 bazel 将所有依赖项下载到本地?

问题描述

我有一个用 bazel 构建的项目。当我用vs-code打开项目时,发现很多头文件都找不到,例如: #include <grpc++/grpc++.h> 但是构建成功。我认为是由于对bazel的依赖,

        remote_workspace(
            name = "com_github_grpc_grpc",
            remote = "https://github.com/grpc/grpc",
            tag = "1.21.3",
            patches = ["@//bazel/patches:grpc.patch"],
            patch_args = ["-p1"],
        )

有没有办法将所有 bazel 依赖项下载到我的本地机器上,以便 vs-code 可以找到所有文件?

标签: visual-studio-codebazel

解决方案


如果构建成功,则文件已经在您的计算机上。你只需要告诉 vs-code 在哪里。

Bazel 将所有外部存储库具体化在<execution_root>/external/. 这<execution_root>是 Bazel 在其输出树中创建的目录,您可以通过运行找到它的路径bazel info execution_root。在它下面,您会看到external/,在它下面您会找到存储库。

但是,您可能必须为 vs-code 提供静态路径,而不是命令。幸运的是,有一种更方便的方法。在构建之后查看您的工作区目录:查看bazel-bin和其他bazel-*目录?这些实际上是符号链接,其中一个被称为类似bazel-myproject,其中“myproject”是您的工作区目录的名称。这个符号链接也指向<execution_root>,所以你可以告诉 vs-code 在bazel-myproject/external/com_github_grpc_grpc.


推荐阅读