Как скачать все зависимости от локальных с помощью bazel? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть проект, который построен на основе Bazel. Когда я открываю проект с помощью vs-кода, я обнаруживаю, что многие файлы заголовков не могут быть найдены, например: #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 мог найти все файлы?

1 Ответ

2 голосов
/ 05 ноября 2019

Если сборка прошла успешно, файлы уже на вашем компьютере. Вы просто должны сказать vs-code, где.

Базель материализует все внешние репозитории в <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.

...