Skip to main content

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

Материалы