Добро пожаловать в майский выпуск информационного бюллетеня Gradle Build Tool! В этом месяце: действительно ли LLM бесполезны при написании плагинов Gradle, быстрые внутренние циклы разработки с Configuration Cache, сокращение времени сборки в CI на 57% от DuckDuckGo и Gradle 9.5.1.
Содержание
- Из сообществаДЕЙСТВИТЕЛЬНО ЛИ LLM БЕСПОЛЕЗНЫ ПРИ НАПИСАНИИ КОДА?ОБРЕЗКА ОБЛАСТИ ВИДИМОСТИ KOTLINПОЧЕМУ RICH CONSOLE НЕ РАБОТАЕТ НА NIXРЕФАКТОРИНГ HCL С ПОМОЩЬЮ OPENREWRITE
- ДЕЙСТВИТЕЛЬНО ЛИ LLM БЕСПОЛЕЗНЫ ПРИ НАПИСАНИИ КОДА?
- ОБРЕЗКА ОБЛАСТИ ВИДИМОСТИ KOTLIN
- ПОЧЕМУ RICH CONSOLE НЕ РАБОТАЕТ НА NIX
- РЕФАКТОРИНГ HCL С ПОМОЩЬЮ OPENREWRITE
- От GradleВЫПУСК GRADLE 9.5.1БЫСТРЫЕ ВНУТРЕННИЕ ЦИКЛЫ РАЗРАБОТКИ
- ВЫПУСК GRADLE 9.5.1
- БЫСТРЫЕ ВНУТРЕННИЕ ЦИКЛЫ РАЗРАБОТКИ
- От DevelocityDUCKDUCKGO СОКРАЩАЕТ ВРЕМЯ СБОРКИ НА 57%
- DUCKDUCKGO СОКРАЩАЕТ ВРЕМЯ СБОРКИ НА 57%
- Предстоящие мероприятия
- Расскажите друзьям
Введение
Добро пожаловать в майский выпуск информационного бюллетеня Gradle Build Tool! В этом месяце мы погружаемся в будущее быстрых внутренних циклов разработки с помощью Configuration Cache и Isolated Projects, обсуждаем сокращение времени сборки CI на 57% в DuckDuckGo, патч-релиз Gradle 9.5.1, а также на практике смотрим, что происходит, когда вы подключаете LLM к реальной кодовой базе плагина Gradle.
ДЕЙСТВИТЕЛЬНО ЛИ LLM БЕСПОЛЕЗНЫ ПРИ НАПИСАНИИ КОДА? #
Тони Робалик (Tony Robalik) описывает три конкретных случая в своем плагине Dependency Analysis Gradle Plugin, когда контрибьюторы, использующие LLM, нанесли реальный ущерб: неверная диагностика ClassCastException, сгенерированная ИИ, в которой почти каждое утверждение оказалось неверным; PR с «исправлением», который был семантически некорректным и вдвое превышал необходимый размер; и PR с учетом чувствительности к путям, который вызвал бы стохастические сбои сборки у каждого пользователя удаленного кеша.
Его реакция: добавление Strict No LLM / No AI Policy в Кодекс поведения плагина.
ОБРЕЗКА ОБЛАСТИ ВИДИМОСТИ KOTLIN #
Блок kotlin { ... }, вложенный внутрь android { buildTypes { release { ... } } }, выглядит так, будто он ограничивает -Werror только для релизных сборок, но kotlin — это расширение верхнего уровня, поэтому Gradle тихо применяет его к каждой задаче компиляции Kotlin в проекте.
Ауримас Лютикас (Aurimas Liutikas) разбирает эту скрытую ловушку и показывает, как Gradle разрешает имена, поднимаясь по вложенным блокам, родительским проектам и многоуровневым файлам gradle.properties до тех пор, пока не найдет совпадение.
ПОЧЕМУ RICH CONSOLE НЕ РАБОТАЕТ НА NIX #
Бенедикт Риттер (Benedikt Ritter) прослеживает годичной давности отчет «Gradle 8.12 сломал расширенную консоль на NixOS» до двух несвязанных между собой архитектурных решений вышестоящих систем, которые незаметно наложились друг на друга: ключи кеша .so для native-platform настраиваются только по NativeVersion.VERSION (поэтому патченные и чистые исходные библиотеки конфликтуют), а собранные через nixpkgs JDK не могут выполнять dlopen библиотек из /lib64 даже на FHS-хостах, таких как Fedora с Nix.
Временное обходное решение: зафиксируйте org.gradle.console=rich в ~/.gradle/gradle.properties, чтобы полностью обойти автообнаружение.
РЕФАКТОРИНГ HCL С ПОМОЩЬЮ OPENREWRITE #
Павел Очадлы (Paweł Oczadły) выступает за то, чтобы рассматривать организационные миграции Terraform/OpenTofu как проблему структурированного рефакторинга, а не как проблему скриптов sed: семантические деревья без потерь данных от OpenRewrite выполняют рефакторинг, Gradle служит движком выполнения, а зоны ответственности четко разделены на рецепты Java (как делать), рецепты YAML (что делать) и Gradle (оркестрация).
Два тематических исследования Azure Verified Modules показывают, как этот подход превращается в чистые, готовые к ревью PR, а не в спонтанные скрипты. Сборки Develocity Build Scans упоминаются вскользь как естественный уровень наблюдаемости, если вы уже ими пользуетесь.
От Gradle #
ВЫПУСК GRADLE 9.5.1 #
Gradle 9.5.1 — это первый патч-релиз для версии 9.5.0, исправляющий три регрессии, с которыми столкнулись некоторые пользователи в оригинальной версии 9.5.0:
- Ошибка OOM при обновлении с 9.4.1 до 9.5.0 (#37753)
- Tooling API нельзя использовать с относительным каталогом проекта в версии 9.5.0 (#37797)
- Отсутствует документация для CreateMD5.java (#37812)
Если вы уже перешли на версию 9.5.0, рекомендуется выполнить обновление:
👉 Посмотреть примечания к выпуску
БЫСТРЫЕ ВНУТРЕННИЕ ЦИКЛЫ РАЗРАБОТКИ #
Алекс Семин (Alex Semin) излагает план Gradle по устранению узкого места фазы конфигурации в крупных проектах, а также объясняет, почему Configuration Cache должен стать стандартным по умолчанию в Gradle 10. В крупных проектах узкое место сместилось с выполнения на конфигурацию, и Configuration Cache в сочетании с экспериментальной функцией Isolated Projects напрямую решает эту проблему:
- Configuration Cache рассматривает конфигурацию как чистую функцию и кеширует результирующий граф работы. Сообщается, что этот блок экономит около 4 инженерных лет ежегодно после внедрения.
- Isolated Projects добавляет границы между подпроектами, позволяя выполнять конфигурацию параллельно, а кеширование для каждого проекта может задействоваться при промахах кеша. Бенчмарки показывают ускорение синхронизации в Android Studio в 1,3–2,5 раза для сборок из 50–100 подпроектов.
- Проект NowInAndroid теперь совместим с Isolated Projects, что является полезным доказательством жизнеспособности миграции для реальных кодовых баз Android.
В пост также встроена запись оригинального выступления с KotlinConf 2025 для тех, кто предпочитает видео.
От Develocity #
DUCKDUCKGO СОКРАЩАЕТ ВРЕМЯ СБОРКИ НА 57% #
В новом тематическом исследовании, опубликованном в этом месяце, Android-команда DuckDuckGo подробно описала, как они использовали Develocity Build Validation Scripts, чтобы систематически находить промахи кеша в сборке Android на 160 модулей. Скрипты валидации выявили три конкретных класса проблем с отравлением кеша: различия в путях схемы Room, не детерминированность Dagger и несоответствия кеширования CMake. Их устранение позволило сократить время сборки CI до 57%.
Предстоящие мероприятия #
Встречайтесь с командой Gradle и другими участниками сообщества на этих предстоящих мероприятиях! Мы будем рады пообщаться с вами и обсудить все, что связано с Gradle Build Tool, Develocity, разработкой инженерной производительности (DPE) или эволюционирующим влиянием ИИ на разработку и поставку программного обеспечения.
- 3–4 июня — jPrime 2026 — София, Болгария. Болгарская JVM-конференция с сильным потоком по инструментам сборки и платформной инженерии.
- 3–4 июня — DevTalks Bucharest — Бухарест, Румыния. Широкая конференция разработчиков с активным потоком по JVM/Android.
- 17–19 июня — Devoxx Poland 2026 — Краков, Польша. Семипоточная конференция по Java/JVM; ожидается много материалов по Kotlin и инструментам сборки.
Расскажите друзьям #
Мы призываем вас делиться самыми яркими моментами из этого информационного бюллетеня.
Этот и предыдущие выпуски можно найти в архиве рассылки Gradle или подписаться через RSS.
Прием заявок на доклады для июньского выпуска уже открыт!










