1. Обзор
В этом кратком руководстве мы рассмотрим способы очистки нашего локального кеша Maven . Мы можем захотеть сделать это, чтобы сэкономить место на диске или очистить артефакты, на которые мы больше не ссылаемся.
Сначала мы очистим кеш вручную, где мы физически удалим каталог. Затем мы очистим наш кеш с помощью подключаемого модуля зависимостей Maven, используя некоторые из доступных нам параметров подключаемого модуля.
2. Удаление каталога локального кэша
Наши локальные репозитории Maven хранятся в разных местах в зависимости от операционной системы. Также, как . m2
, скорее всего, будет скрыт, нам нужно будет изменить свойства каталога, чтобы отобразить его.
В Windows расположение по умолчанию:
C:\Users\<user_name>\.m2
И на Маке:
/Users/<user_name>/.m2
И в системах на базе Linux:
/home/<user_name>/.m2
Как только мы найдем каталог, мы можем просто удалить папку .m2/repository.
В системах на основе Unix, таких как MacOS или Linux, мы можем удалить каталог с помощью одной команды:
rm -rf ~/.m2/repository
Если наш каталог кеша не находится в расположении по умолчанию, мы можем использовать плагин справки Maven , чтобы найти его:
mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout
3. Использование плагина зависимостей Maven
Вместо того, чтобы удалять каталог кеша напрямую, мы можем использовать подключаемый модуль Maven Dependency Plugin с целью очистки локального репозитория .
Во-первых, нам нужно перейти в корень нашего проекта Maven. Затем мы можем запустить:
mvn dependency:purge-local-repository
Когда мы запускаем этот плагин без каких-либо дополнительных флагов, он может загружать артефакты, которых нет в нашем кеше, для разрешения дерева зависимостей. Это известно как транзитивное разрешение зависимостей. Далее он удаляет наш локальный кеш и, наконец, заново скачивает артефакты.
В качестве альтернативы, чтобы удалить наш кеш и избежать первого шага предварительной загрузки отсутствующих зависимостей, мы можем передать флаг actTransitively=false
:
mvn dependency:purge-local-repository -DactTransitively=false
Наконец, если мы просто хотим очистить наш кеш без предварительной загрузки или повторного разрешения артефактов :
mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false
Здесь мы передаем дополнительный флаг reResolve=false
, который указывает плагину избегать повторной загрузки зависимостей.
4. Вывод
В этой короткой статье мы рассмотрели два способа очистки нашего локального кеша Maven.
Во-первых, мы рассмотрели ручную очистку нашего локального каталога кеша. Затем мы использовали подключаемый модуль Maven Dependency, изучая различные варианты для достижения желаемого результата.