buildSrc
buildSrc — это специальная директория в корне Gradle-проекта. Всё, что лежит в buildSrc/src/main/kotlin,
автоматически компилируется и становится доступным в build.gradle.kts всех модулей проекта.
Раньше buildSrc был популярным способом вынести общие версии зависимостей:
// buildSrc/src/main/kotlin/Deps.kt
object Deps {
const val coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2"
}
Недостатки buildSrc
- Любое изменение в buildSrc инвалидирует весь build cache проекта — Gradle пересобирает всё с нуля
- buildSrc не поддерживает номера версий и не публикуется — это часть проекта
- С ростом проекта сборка buildSrc замедляется, так как не закеширована
Альтернатива: convention plugins (рекомендуется)
Современный подход — выносить общую логику в convention plugins через includeBuild (отдельный
Gradle-проект build-logic). Подробнее — в разделе Convention plugins.
Преимущества:
- Изменения в convention plugins не трогают build cache основного проекта
- Convention plugins можно версионировать и публиковать
- Поддерживаются плагином
kotlin-dsl, дающим автодополнение в IDE