Базель инкрементальные результаты сборки - PullRequest
0 голосов
/ 26 октября 2019

У меня есть кодовая база с несколькими модулями, которые я хочу построить с помощью Bazel. В моей сборке есть несколько общих библиотек и приложений, и не каждое приложение будет использовать одинаковые общие библиотеки.

Если у меня есть предыдущая сборка от Bazel и набор изменений в общей библиотеке, используемой приложением A, но не приложением Bи сборка из корня с помощью Bazel, будет ли построена и протестирована только общая библиотека и приложение A, что приведет к созданию нового двоичного файла?

На сайте написано, что Bazel only rebuilds what is necessary, и я хочу убедиться, что этоэто подразумевается.

Я, конечно, мог бы сам проверить это, и я сделаю это, если не получу ответ и не отвечу на свой вопрос.

1 Ответ

1 голос
/ 26 октября 2019

Если у меня есть набор изменений в общей библиотеке, используемой приложением A, но не в приложении B и сборке из корня с помощью Bazel, будет построена и протестирована только общая библиотека и приложение A, что приведет к созданию нового двоичного файла?

Да, если нет переходных ребер зависимости от B к общей библиотеке (например, B -> A -> общая библиотека или B -> общая библиотека). Если быть точным, это означает, что никакие выходные файлы B не зависят от командной строки, которая зависит от входных файлов из библиотеки команд.

Обратите внимание, что bazel build //... создает все. Вы можете запустить bazel build //package/to:A, и он будет игнорировать B, если B не требуется в A.

...