Отказ от ответственности : я инженер в команде Bazel.
Правильно ли я считаю, что могу добиться значительного улучшения скорости сборки с помощью Bazel по сравнению с Maven дляэтот тип проекта?
Это будет зависеть от того, насколько быстры ваши текущие сборки с Maven, а также от характеристик вашего графика сборки.
Компания Redfin мигрировала из Maven в Bazel в прошлом году и испытала 10-кратное ускорение в своих сборках CI (с 40-90 минут до 5-6 минут). Они описали эту миграцию в своем блоге .Ранее в этом году Bazel добавила поддержку удаленного кэширования , о которой пользователи сообщали, чтобы ускорить их сборку.
Существуют ли примеры для сборки модуля WAR или модуля EAR с помощью Bazel?
В rules_appengine
существует правило упаковки java_war
.Bazel является расширяемым, поэтому, если правила для определенного этапа сборки не существуют, его можно записать как расширение правила (например, этот список правил сообщества )
Я планирую добавить файлы BUILD рядом с POM, пока я экспериментирую.Есть ли недостатки?
BUILD
/ BUILD.bazel
файлы не являются навязчивыми для вашего проекта и не должны влиять на ваши существующие сборки Maven.
Bazel кажется очень мощнымтак как это позволяет мне писать сценарии о чем угодно.Это также может быть недостатком, так как в Maven есть так много плагинов для чего угодно.Есть какие-нибудь мысли по поводу работоспособности скриптов или структуры Bazel?
Это довольно субъективный вопрос, и он зависит от того, от каких плагинов вы зависите.
Один шаг миграции выможет натолкнуться на управление переходными внешними зависимостями.Существует отличный инструмент под названием bazel-deps
, который помогает вам управлять ими и автоматически генерирует файлы BUILD.
Jadep
- это еще один инструмент , который анализирует ваш проект Java игенерирует BUILD
файлы для них.Ознакомьтесь с этим руководством , чтобы узнать больше о Jadep.
Я работаю на Windows вместо Linux (да .. я знаю).Есть ли минусы в отношении Базеля?Кажется, все работает нормально и быстро с MSYS2.
Bazel - это бинарный файл Windows, не зависящий от времени выполнения MSYS2, если только вы не используете правила, которые зависят от bash
, например sh_library
,Проверьте этот пост для более подробной информации: https://blog.bazel.build/2017/10/16/windows-retrospect.html