Composite builds
Composite build (композитная сборка) — это подключение одного самостоятельного Gradle-проекта к сборке
другого. В settings.gradle.kts это выглядит так:
includeBuild("build-logic")
В отличие от buildSrc, composite build — это полноценный Gradle-проект со своим settings.gradle.kts,
build.gradle.kts и версиями. Его можно даже опубликовать и переиспользовать между разными проектами.
Зачем нужен
Composite build — основа для convention plugins (см. раздел Convention plugins).
Вместо того чтобы дублировать настройки Gradle в каждом модуле, вы выносите общую логику в build-logic
и подключаете его через includeBuild.
Composite build vs buildSrc
| buildSrc | Composite build | |
|---|---|---|
| Инвалидация cache | Любое изменение сбрасывает весь кеш проекта | Кеш проекта не трогается |
| Версионирование | Нет | Можно публиковать |
| Скорость | Замедляется на больших проектах | Работает как обычный Gradle-проект с кешированием |