Как очистить кэш Gradle на Mac

Очистить кэш Gradle на Mac обычно приходится после нескольких лет работы с Android или Java: в общем кэше лежат все зависимости, которые Gradle когда-либо скачал, и он часто занимает несколько гигабайт. Очистка отдельного проекта его не трогает, а сам Gradle удаляет только то, чем давно не пользовались. Здесь — в чём разница, как безопасно очистить кэш и как удалить старые версии Gradle.

MacWashing, раздел «Сборка мусора»: найдены мусор Xcode, пользовательский кэш, установщики и журналы, к очистке 22,83 ГБ
  1. Откройте MacWashing и выберите Сборка мусора в боковом меню.
  2. Нажмите Начать сканирование.
  3. Просмотрите находки и нажмите Очистить. Всё спорное остаётся без галочки.

Бесплатная пробная версия · macOS 14 и новее

Что занимает место в ~/.gradle

Общие файлы Gradle хранит в скрытой папке .gradle в папке пользователя:

  • caches — скачанные зависимости, кэш сборки и другие файлы, которые Gradle может создать или скачать заново. Обычно это самая большая часть.
  • wrapper/dists — версии Gradle, которые скачал Gradle Wrapper (gradlew) для ваших проектов, по папке на версию.
  • daemon — журналы демона Gradle.

Рядом лежат ваши настройки: gradle.properties и папка init.d. Их не трогайте.

Gradle clean и кэш Gradle — не одно и то же

./gradlew clean удаляет папку build того проекта, в котором вы её запускаете, со всем, что Gradle там собрал. Исходники остаются, общий кэш в ~/.gradle тоже. Запустите её в папке проекта:

./gradlew clean

Следующая сборка компилирует проект с нуля, поэтому идёт дольше. Это полезно, когда сборка ведёт себя странно, или чтобы освободить место одного проекта.

Как очистить кэш Gradle

Закройте Android Studio или IntelliJ IDEA. Затем остановите демон Gradle, чтобы он не держал открытыми файлы в кэше. Выполните в любой папке проекта:

./gradlew --stop

Если Gradle установлен отдельно, то же делает gradle --stop. Команда останавливает демоны только своей версии Gradle, так что если проекты используют несколько версий, выполните её в проекте каждой.

  1. В Finder выберите Переход › Переход к папке (Shift-Command-G), введите ~/.gradle и нажмите Return.
Finder, папка ~/.gradle: выделена caches, рядом daemon, native и wrapper
  1. Перетащите папку caches в Корзину.
  2. Очистите Корзину.

Так удаляются скачанные зависимости и кэш сборки всех проектов. Проекты, настройки и установленные инструменты остаются. Следующая сборка каждого проекта скачает зависимости заново, поэтому нужен интернет и времени уйдёт больше.

Удалить старые версии Gradle

Откройте ~/.gradle/wrapper/dists. Каждая папка — одна версия Gradle, например gradle-8.10-bin. Удалите версии, которые нынешние проекты не используют. Если удалённая версия снова понадобится проекту, его wrapper скачает её при следующей сборке.

Finder, ~/.gradle/wrapper/dists: по папке на версию Gradle, у самой старой — «Переместить в Корзину»

Пусть Gradle чистит кэш сам

Gradle сам удаляет записи кэша, которыми давно не пользовались: скачанные файлы и выпущенные версии Gradle — через 30 дней, кэш сборки — через 7 дней. Очистка идёт примерно раз в сутки, обычно в фоне, когда демон останавливается. Поэтому кэш остаётся большим в основном тогда, когда вы открываете много разных проектов.

Начиная с Gradle 8.0 эти сроки можно поменять скриптом инициализации в ~/.gradle/init.d. Как это сделать, показано в документации Gradle, на странице о Gradle User Home.

А с MacWashing это в один клик

MacWashing, раздел «Сборка мусора»: найдены мусор Xcode, пользовательский кэш, установщики и журналы, к очистке 22,83 ГБ

Сборка мусора в MacWashing показывает кэш Gradle в разделе «Кэш программ» без галочки: скачивать зависимости заново — это интернет и время, поэтому решаете вы. Отметьте его, и он удалится вместе с кэшем других программ и инструментов разработчика.

Бесплатная пробная версия · macOS 14 и новее

Вопросы и ответы

Удалит ли MacWashing мои файлы при очистке?

Нет. Он удаляет только то, что может сопоставить с известной программой или известным видом мусора, и только там, где программы оставляют файлы; macOS и файлы Apple не затрагиваются. Всё спорное помечено и остаётся без галочки, пока вы не решите.

Что будет с открытыми программами?

Если файлы заняты открытой программой, MacWashing подождёт, пока она закроется, или закроет её по вашей команде, а после очистки откроет снова.

Это бесплатно?

Да, в пробном режиме: Сборка мусора и Деинсталлятор вместе освобождают до 25 ГБ, без аккаунта и карты.

Очищает ли gradle clean кэш Gradle?

Нет. ./gradlew clean удаляет только папку build одного проекта. Общий кэш в ~/.gradle/caches остаётся, пока вы не удалите его сами или собственная очистка Gradle не уберёт старые записи.

Не сломаются ли проекты после очистки кэша Gradle?

Нет. Gradle скачает зависимости заново при следующей сборке. До этого не получится только сборка без интернета, потому что нужных файлов уже нет.

Почему кэш Gradle снова растёт?

Каждый проект приносит свои зависимости и часто свою версию Gradle. Gradle удаляет записи, не нужные 30 дней, так что кэш уменьшится снова, только когда вы перестанете открывать старые проекты.