Недавно прошёл наш Android meetup, где ребята из платформенной команды Авито делились своим опытом работы с Gradle, показывали способы защиты от частых проблем при сборке проектов и рассказывали о нашем подходе к решению проблем.
Собрали в посте видеозаписи выступлений с таймкодами и ссылки на презентации спикеров.
Gradle в 2021: сonvention plugins workshop — Дмитрий Воронин
Воркшоп о способе организации проектов, который позиционируется командой Gradle как идиоматический.
Тема будет интересна инженерам с достаточно большими проектами, которые содержат несколько модулей. Будет полезно посмотреть, если есть сложности с проектами и непонимание, как правильно структурировать Gradle-код и переиспользовать конфигурации между модулями. Ну или просто тем инженерам, кто хочет узнать, как Gradle идиоматически задумывает конфигурацию.
00:00 — Представление спикера и темы
05:27 — Проект, который будет примером в воркшопе
06:44 — Лайвкодинг: пошаговая оптимизация проекта
28:31 — Ответы на вопросы
Полезные ссылки:
Lint для сборки: как защищаться от проблем при сборке проекта — Евгений Кривобоков
Женя рассказал, как мы защищаемся от довольно частых проблем при сборках проектов. В докладе нет частей про диагностику проблем и ускорение сборки, он сконцентрирован на том, что делать для предотвращения найденных проблем в будущем. Подход, о котором идёт речь, не универсальный, но довольно много где применим.
00:00 — Представление спикера и темы
01:38 — Какие бывают проблемы
09:05 — Как контролировать окружение
14:16 — Пример специфической проблемы для конкретного проекта и её решения
20:04 — Зачем вообще писать свои проверки
22:35 — Ответы на вопросы
Gradle build scan на коленке — Сергей Боиштян
На боевом примере Сергей разбирает, как мы упростили поиск ошибок в своих CI-сборках. Вы узнаете, как мы применяем продуктовый подход в решении проблем и немного о том, как работаем с Gradle.
Доклад будет полезен тимлидам в больших командах, разработчикам, которые настраивают CI/CD или решают любого рода проблемы.
00:00 — Представление спикера, темы и её пользы
04:12 — Поиск проблемы: разбираем на примере падения сборки
06:51 — Определяем приоритет задач по RICE
14:36 — Как мы искали решение проблемы
18:30 — Пишем прототип с помощью TestProjectGenerator
26:11 — Версия инструмента 1.0
30:30 — Отдаём инструмент пользователям и смотрим на результат
34:02 — Сравнение: как было и как стало
36:52 — Ответы на вопросы
На этом всё, до встречи на новых митапах!
ChPr
У included build есть очень важное отличие от buildSrc – он не ломает Gradle cache. При любом изменении buildSrc cache слетает полностью, в то время как при использовании included build cache работает как положено.
eugenekrivobokov
Так было до Gradle 6.8. Поддержали compilation avoidance.