Gradle для Android и Java: как установить, настроить и собрать первый проект
Знакомимся с главным сборщиком проектов на Java.
При первом запуске Android Studio или сборке Java-проекта новичков часто пугает Gradle — инструмент для быстрой сборки кода. В папке с проектом появляется много незнакомых файлов, библиотеки приходится подключать через специальные блоки кода, а сборку — запускать командами в терминале.
В этой статье мы разберём, как устроена Gradle и зачем она нужна, что такое задачи, плагины и зависимости, как запустить проект через Gradle Wrapper без ручной установки, и соберём простое приложение.
Содержание
- Что такое Gradle и зачем она нужна
- Как устроен Gradle-проект
- Как Gradle собирает проект
- Как запустить Gradle
- Создаём и собираем проект
- Особенности Gradle в Android
- Полезные материалы
Что такое Gradle и зачем она нужна
Gradle — это система автоматизации сборки проектов для Java и Kotlin. Код приложений обычно состоит из десятков, а иногда и сотен файлов. Gradle автоматически связывает их между собой, скачивает нужные библиотеки, запускает тесты и упаковывает всё это в единый файл. Это может быть исполняемый JAR-файл или Android-приложение.
Проще представить Gradle как диспетчера. Разработчик описывает, что должно получиться после компиляции кода, а Gradle решает, как именно и в каком порядке собирать проект. Благодаря этому разработчику не надо вручную компилировать каждый файл и искать нужные библиотеки.

Скриншот: Gradle / Skillbox Media
Gradle появилась в 2007 году. Её создатели хотели сохранить гибкость Ant, добавить удобное управление зависимостями из Maven и отказаться от громоздкой настройки через XML. В 2013 году Google выбрал Gradle как основу системы сборки Android. Поэтому сегодня она встречается почти в каждом Android-проекте и во многих проектах на Java и Kotlin.
Чем Gradle отличается от Maven и Ant
Gradle — не единственный инструмент сборки проектов в экосистеме Java. До неё уже существовали Apache Ant и Maven, и обе до сих пор встречаются в продакшене. Между собой инструменты различаются подходом к сборке.
Например, Ant даёт много свободы, но каждый шаг сборки надо подробно описывать. Maven опирается на строгие соглашения и спасает от хаоса в коде, но с трудом адаптируется под нестандартные сценарии. Gradle сочетает в себе строгие правила с возможностью настроить сборку под проект.
Чтобы было проще понять различия, представим их в таблице.
| Критерий | Ant | Maven | Gradle |
|---|---|---|---|
| Как настраивают | Описывают каждый шаг в XML | Используют XML и строгие соглашения | Пишут скрипт на Kotlin или Groovy DSL |
| Зависимости | Нет | Есть | Есть, с гибкими конфигурациями |
| Повторная сборка | Обычно медленная | Средняя | Быстрая за счёт кэша и проверки изменений |
| Где встречается | Старые проекты | Корпоративная Java | Android и современные Java-/Kotlin-проекты |

Читайте также:
Как устроен Gradle-проект
Чтобы не запутаться в конфигах, достаточно усвоить четыре базовых понятия, на которых построена вся работа с Gradle:
- Задача (task) — одно действие: скомпилировать код, запустить тесты или собрать приложение. Команда build запускает сразу цепочку связанных задач.
- Плагин (plugin) — готовый набор задач и настроек. Плагин java добавляет сборку Java-кода, а Android Gradle Plugin — сборку Android-приложения.
- Зависимость — внешняя библиотека, которая нужна проекту. Gradle скачивает её из репозитория и добавляет в нужный этап сборки.
- Скрипт сборки — файл build.gradle.kts или build.gradle, где подключают плагины, репозитории и зависимости. Скрипты можно писать на одном из двух языков: Groovy DSL или Kotlin DSL.
Эти понятия встречаются как в официальной документации, так и в обучающих руководствах. Поэтому важно понимать, что они означают и чем отличаются друг от друга.
Основные файлы и папки
В каждом проекте с Gradle есть несколько папок и файлов, в которых хранится всё необходимое для сборки. Без них система не будет знать, что ей надо делать с кодом.
Вот для чего нужны каждый файл и папка:
- build.gradle.kts — главный скрипт сборки модуля или проекта, в котором хранится список подключённых плагинов, зависимостей и репозиториев.
- settings.gradle.kts — файл начальной настройки проекта. В нём задают имя проекта, перечисляют все входящие в него модули и описывают настройки управления зависимостями.
- gradle.properties — файл с общими настройками Gradle. Здесь обычно задают параметры виртуальной машины Java (JVM), включают или отключают различные возможности Gradle и определяют глобальные свойства проекта.
- gradlew, gradlew.bat и папка gradle/wrapper — эти файлы позволяют собрать проект даже на компьютере, где Gradle не установлена. Wrapper автоматически скачает нужную версию Gradle, указанную в настройках проекта, и запустит сборку.
- .gradle — служебная папка Gradle с кэшем зависимостей, логами и промежуточными файлами сборки.
В проекте обязательно должны быть файлы settings.gradle.kts и build.gradle.kts, а остальные добавляют по мере необходимости. Например, если нужно собирать код на компьютере без Gradle, то добавляют gradlew и gradlew.bat.
Скрипты на Groovy DSL и Kotlin DSL
Скрипты Gradle пишут на одном из двух DSL (от англ. domain-specific language — язык под конкретную задачу) — языков для настройки сборки: Groovy DSL или Kotlin DSL.
Первым появился Groovy DSL с расширением файлов .gradle. Его до сих пор используют в старых проектах, но современные приложения собирают уже с помощью скриптов на Kotlin DSL с расширением файлов .gradle.kts. Его главное преимущество — статическая типизация: среда разработки подсказывает доступные методы, ловит опечатки сразу при написании, а не во время сборки.
Вот как выглядит фрагмент скрипта с подключением библиотеки на Groovy DSL:
// Groovy DSL — build.gradle
dependencies {
implementation 'com.squareup.retrofit2:retrofit:2.11.0'
}А так на Kotlin DSL:
// Kotlin DSL — build.gradle.kts
dependencies {
implementation("com.squareup.retrofit2:retrofit:2.11.0")
}Если вы только начинаете разбираться с Gradle, то выбирайте для своих проектов Kotlin DSL — это стандарт в сообществе.
Как Gradle собирает проект
Запуск Gradle проходит в три фазы по порядку. Понимание этого механизма пригодится, когда сборка начнёт тормозить и захочется разобраться почему.
Инициализация. Gradle читает файл settings.gradle и определяет, какие модули входят в сборку. На этом этапе она понимает, с чем конкретно предстоит работать.
Конфигурация. Gradle читает все скрипты сборки build.gradle и строит граф задач — что от чего зависит. Например, тесты не запустятся, пока не скомпилируется код. Gradle сама выстраивает этот порядок.
Выполнение. Gradle запускает те задачи, которые вы попросили в командной строке.
Ещё Gradle умеет пропускать лишнюю работу. Если исходники и результат задачи не менялись с прошлого раза, задача помечается как UP-TO-DATE и пропускается. Это называется инкрементальной сборкой, и именно она делает повторные запуски быстрыми.

Изображение: Skillbox Media
Как запустить Gradle
Один из самых удобных способов запустить Gradle — Gradle Wrapper. Это специальный набор файлов, который автоматически скачивает нужную версию инструмента и запускает сборку проекта. Кроме того, Gradle Wrapper уже есть в Android Studio и IntelliJ IDEA.
Для запуска актуальной версии Gradle 9.x нужен JDK 17 или новее. Если на вашем компьютере ещё нет JDK, то можно установить его по нашему руководству.

Читайте также:
После установки откройте проект в IDE и выполните в терминале следующую команду:
# macOS и Linux
./gradlew --version
# Windows
gradlew.bat --versionПри первом запуске Wrapper скачает дистрибутив Gradle и сохранит его в пользовательской папке .gradle/wrapper/dists. Этот процесс может занять много времени, но следующие запуски будут быстрее.
Для удобства файлы Wrapper стоит хранить в Git-репозитории. Так любой разработчик из вашей команды сможет сразу собрать проект без установки Gradle вручную.
Создаём и собираем проект
Рассмотрим весь путь сборки проекта на небольшом примере. Создадим необходимые папки, добавим зависимости и соберём код.
Шаг 1. Создаём файл в IDE
Для начала запустим IntelliJ IDEA или любую другую IDE для работы с Java. В окне создания проекта выбираем New Project, указываем язык Java, систему сборки Gradle с Kotlin DSL и JDK 17 или новее. В пункте Gradle distribution выбираем Wrapper и нажимаем на кнопку Create.

На экране появится новый проект со всем необходимым окружением. В дереве файлов уже есть все нужные папки.

Шаг 2. Добавляем зависимости
Зависимости подключают в блоке dependencies файла build.gradle.kts. В нашем файле уже есть зависимости от моделей фреймворка для юнит-тестирования JUnit.
В блоке repositories перечисляют репозитории, из которых Gradle скачивает нужные библиотеки. По умолчанию система добавляет Maven Central — один из самых больших и популярных публичных репозиториев с Java-библиотеками.

При добавлении библиотеки нужно указать не только её название, но и конфигурацию — она определяет, когда библиотека будет использоваться.
Основные конфигурации:
- implementation — зависимость нужна и при компиляции, и во время работы приложения. Самая распространённая конфигурация.
- api — работает так же, как implementation, но делает библиотеку доступной другим модулям. Эту конфигурацию используют для работы с публичными API.
- compileOnly — библиотека нужна только во время компиляции.
- runtimeOnly — зависимость не нужна при компиляции, но должна присутствовать при запуске приложения.
- testImplementation — библиотека нужна только для тестов (например, JUnit или Mockito).
Для примера добавим в блок repositories репозиторий google(), а в dependencies — библиотеку Gson, которая конвертирует Java-объекты в формат JSON:
// build.gradle.kts
repositories {
mavenCentral()
google()
}
dependencies {
implementation("com.google.code.gson:gson:2.11.0")
}Шаг 3. Запускаем сборку
Для сборки проекта через Wrapper достаточно выполнить в терминале IDE следующую команду:
# macOS и Linux
./gradlew build
# Windows
gradlew.bat buildGradle скачает зависимости, скомпилирует код и запустит тесты. Успешная сборка заканчивается сообщением BUILD SUCCESSFUL в терминале. Результат Java-проекта обычно появляется в папке build/libs.

Помимо ./gradlew в Gradle есть и другие полезные команды:
- ./gradlew tasks — список всех доступных задач проекта;
- ./gradlew clean — удалить результаты прошлых сборок;
- ./gradlew test — только прогнать тесты.
Ещё больше команд и сценариев их использования можно посмотреть в официальной документации.
Особенности Gradle в Android
Android Studio использует Gradle вместе с Android Gradle Plugin (AGP). Этот плагин добавляет задачи для ресурсов, тестов, подписи и упаковки приложения в APK или AAB. Общая схема сборки описана в документации Android Developers.
В Android есть два варианта сборки: build type обычно отделяет отладочную сборку debug от релизной release, а product flavor — позволяет делать, например, бесплатную и платную версии приложения из одной кодовой базы.
Для отладочной сборки Android обычно используют команду ./gradlew assembleDebug, а для Android App Bundle — ./gradlew bundleRelease. Но в начале удобнее пользоваться кнопками Run и Build в Android Studio: IDE вызовет те же задачи и покажет результат в окне Build.
Полезные материалы
Когда базовые возможности освоены, можно переходить к более сложным темам: многомодульным проектам, собственным задачам и плагинам, каталогам версий и тонкой настройке производительности.
Разобраться во всём этом помогут следующие ресурсы:
- Официальная документация Gradle — исчерпывающее руководство с регулярными обновлениями и правками.
- Раздел Build на Android Developers — большой сборник статей и гайдов по работе с Gradle в экосистеме Android.
- Документация по Gradle от команды JetBrains — лучшие практики для работы с Kotlin DSL.
- Build Java Software With Gradle Like a Pro — семичасовой видеокурс по Gradle на английском языке.
- Gradle in Action, Benjamin Muschko — книга от одного из разработчиков Gradle, в которой он подробно рассказывает про внутреннее устройство системы сборки.
Коротко о главном
- Gradle — система сборки для проектов на Java, Kotlin и для Android-приложений. Она компилирует код, управляет зависимостями и собирает файлы в единый артефакт.
- Работа с Gradle построена на четырёх понятиях: это задачи, плагины, зависимости и скрипты сборки.
- Скрипты пишут на Groovy DSL (.gradle) или Kotlin DSL (.gradle.kts). В современных проектах по умолчанию используют Kotlin DSL.
- Каждая сборка проходит три фазы: инициализацию, конфигурацию и выполнение.
- Gradle можно не устанавливать вручную — просто используйте Gradle Wrapper.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!
