Подтвердить что ты не робот

Когда безопасно удалять локальный репозиторий Maven?

В каких обстоятельствах он безопасен, соответственно, небезопасно для rm -rf ~/.m2/repository при условии, что я работаю онлайн, и у меня есть доступ ко всем необходимым артефактам через удаленные репозитории.

4b9b3361

Ответ 1

Когда вы извлекаете все зависимости из удаленных репозиториев, локальное репо становится не чем иным, как кешем.

Как и все кеши, локальное репо Maven иногда может стать "грязным". В подтвержденном акте паранойи и перехитрия я планирую периодическое задание cron для очистки локальных репозиториев на моих машинах сборки. Это заставляет повторно синхронизировать с моим хранилищем Nexus Maven.

Ответ 2

Если у вас есть доступ ко всем необходимым артефактам через удаленные репозитории, всегда можно удалить локальный репозиторий Maven. Все артефакты, необходимые для следующей сборки, включая даже базовые плагины Maven (например, компилятор), будут в основном извлечены из удаленных репозиториев. Что это.

Ответ 3

Что вы можете сделать, это добавить запись cron для регулярного удаления файлов в локальном репозитории за определенный период, например, 90 дней.

find ~/.m2/ -type f -atime +90 -delete && \
    find ~/.m2/ -type d -empty -delete

Это уменьшает размер кеша только до артефактов, которые вы использовали в последнее время.

Ответ 4

Таким образом, вместо того, чтобы использовать способ "грубой силы", есть другой вариант:

грубая сила:

rm -rf ~/.m2/хранилище

Вот "mvn" способ сделать это.

"все:

mvn dependency:purge-local-repository

некоторые аргументы, которые я считаю полезными

mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false

Вот что я обычно делаю для своей локальной машины:

mvn dependency:purge-local-repository -DmanualInclude="my.group.id" -DsnapshotsOnly=true  -DactTransitively=false -DreResolve=false

Пожалуйста, вы можете изучить параметры командной строки здесь:

https://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html