Как очистить кэши Gradle для ускорения первой сборки
Ускорьте первую сборку Android Studio, безопасно удалив лишние файлы кэша Gradle. Узнайте, какие папки можно удалить и почему первый запуск медленный.
Как безопасно очистить кэши Gradle, чтобы ускорить первый билд в Android Studio?
Я заметил, что первый запуск занимает примерно 45 минут, а последующие — всего около 45 секунд.
В домашней директории есть папка .gradle/caches (~123 МБ), а в проекте — папка .gradle с большим taskArtifacts (~200 МБ).
Какие части этих папок можно удалить, не ломая проект?
Нужно ли также очищать кэши IntelliJ?
Почему задача gradle assemble занимает столько времени при первом запуске?
Первый билд ощущается как марафон, потому что Gradle вынужден скачивать каждую зависимость, разрешать транзитивные библиотеки, генерировать код и компилировать всё с нуля. Как только эти артефакты закэшированы локально, последующие сборки используют уже скомпилированные классы, разрешённые модули и скачанные артефакты — вот почему ускорение так заметно.
Можно безопасно удалить большую часть данных в ~/.gradle/caches и в каталоге .gradle на уровне проекта, но будьте осторожны с папкой taskArtifacts — её удаление заставит Gradle заново создавать эти артефакты, что опять займёт время. Очистка внутренних кэшей IntelliJ опциональна; она помогает, когда сама IDE устаревает, но не влияет на процесс сборки Gradle.
Contents
- Why the first build takes so long
- What Gradle cache files can be safely removed
- Cleaning the project‑level
.gradlefolder - When to clear IntelliJ/Android Studio caches
- Other tips to speed up the first build
Почему первый запуск занимает столько времени
Gradle выполняет несколько дорогих операций только при первом запуске:
- Скачивание зависимостей – каждая библиотека загружается из Maven Central, JCenter или приватного репозитория.
- Разрешение транзитивных зависимостей – Gradle строит полный граф зависимостей, что включает сетевые запросы и проверку контрольных сумм.
- Генерация сборочных артефактов – аннотационные процессоры, Kotlin Symbol Processing (KSP) и Java‑аннотационные процессоры создают скомпилированные классы.
- Компиляция всего кода – компилятор запускается над всеми исходниками, создавая
.classфайлы. - Запуск Gradle Daemon – демон запускается, и его стартовые затраты оплачиваются только один раз.
Как только эти шаги завершены, все результаты сохраняются в кэше Gradle (~/.gradle/caches) и в каталоге .gradle на уровне проекта. Последующие сборки используют эти артефакты, поэтому время падает до нескольких секунд.
Согласно официальной документации Gradle, каталог кэша – это место, где Gradle хранит скачанные артефакты, скомпилированные файлы классов и другие промежуточные данные, которые можно переиспользовать между сборками.
https://docs.gradle.org/current/userguide/directory_layout.html
Какие файлы в кэше Gradle можно удалить безопасно
| Каталог | Что хранится | Можно удалять? | Что произойдёт |
|---|---|---|---|
~/.gradle/caches/ |
Все скачанные зависимости, кэшированные сборки, плагины | Да – можно удалить целиком. Gradle заново скачает необходимые артефакты. | Первая сборка снова будет медленной, но в дальнейшем скорость восстановится. |
~/.gradle/caches/modules-2/ |
Кешированные JAR‑ы и POM‑ы | Да – удаление не повредит. | Потребуется повторная загрузка зависимостей. |
~/.gradle/caches/transforms-1/ |
Распакованные зависимости (для кросс‑компиляции) | Да | Не повредит, но потребует повторной распаковки. |
~/.gradle/caches/journal-1/ |
Журнал изменений кэша | Да | Не критично, но может замедлить очистку. |
project/.gradle/ |
taskArtifacts (сборка кода, генерируемые файлы), build‑cache (если включён) | Удалять только taskArtifacts – это заставит пересобрать кэшированные задачи, но не повредит проекту. Полное удаление .gradle в проекте заставит Gradle пересобрать всё с нуля. |
Первый билд после удаления будет медленным, но последующие ускорятся. |
project/.gradle/refreshDependencies |
Файл‑флаг, заставляющий Gradle заново проверять зависимости | Можно удалить – это просто сигнал о необходимости обновления. | Переустановит зависимости. |
Согласно руководству Android Developers о работе с кэшем Gradle, можно безопасно удалить каталог
~/.gradle/cachesбез потери данных проекта.
https://developer.android.com/studio/build/gradle#gradle-cache
Как очистить .gradle в проекте
- Удалите только
taskArtifactsbashrm -rf <project_dir>/.gradle/taskArtifacts - Полностью очистите, если хотите начать с нуляЭто приведёт к пересборке всех задач, но иногда помогает, если кэш повреждён.bash
rm -rf <project_dir>/.gradle - Перезапустите Gradle Daemonbash
./gradlew --stop
По словам JetBrains в их блоге, удаление
taskArtifacts– это стандартная практика для восстановления кэша без потери настроек проекта.
https://blog.jetbrains.com/idea/2023/02/clean-gradle-cache/
Когда стоит очищать кэши IntelliJ/Android Studio
- Если IDE не реагирует (отображаются старые файлы, автодополнение не работает).
- При больших ошибках компиляции, которые не исчезают после обычной пересборки.
- После обновления Android Studio (чтобы избежать конфликтов с старой мета‑информацией).
Как сделать:
File→Invalidate Caches / Restart…→Invalidate and Restart.- В большинстве случаев это не влияет на производительность Gradle, но чистит внутренние индексы IDE.
В официальной справке IntelliJ указано, что опция «Invalidate Caches» очищает только внутренние кэши IDE, а не кэши Gradle.
https://www.jetbrains.com/help/idea/invalidate-caches-restart.html
Другое, что может ускорить первый билд
| Мера | Как применить | Приоритет |
|---|---|---|
| Включить Gradle Build Cache | Добавьте в gradle.properties: org.gradle.caching=true. |
Средний |
| Установить более быстрый репозиторий | Используйте зеркала Maven Central (например, https://repo1.maven.org/maven2/). | Низкий |
| Оптимизировать зависимости | Удалите неиспользуемые библиотеки, используйте implementation вместо compile. |
Средний |
| Параллельные сборки | Включите org.gradle.parallel=true в gradle.properties. |
Низкий |
| Увеличить размер памяти Gradle Daemon | Добавьте org.gradle.jvmargs=-Xmx4g в gradle.properties. |
Средний |
По данным официального руководства Gradle, включение кэша сборки (
org.gradle.caching=true) может сократить время последующих сборок почти вдвое.
https://docs.gradle.org/current/userguide/build_cache.html
Заключение
- Первый билд медленный из‑за загрузки зависимостей, генерации кода и компиляции.
- Можно удалить
~/.gradle/cachesи каталогtaskArtifactsв проекте, но это заставит Gradle заново собрать всё. - IntelliJ кэши не влияют на скорость Gradle, очищать их можно только при IDE‑проблемах.
- Сохраняйте остальные файлы кэша, они ускоряют последующие сборки.
- Дополнительные настройки (build cache, параллельность, увеличение памяти) помогут сократить время даже после первого запуска.
Соблюдая эти рекомендации, вы получите более стабильную и быструю среду разработки, а первый билд перестанет занимать 45 минут.