Как удалить файл jar из локального репозитория maven, который был добавлен с помощью install: install-file?

mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar

Я использую команду выше для установки локальной банки в maven local repo. Теперь у меня есть зависимость от maven repo. Я хочу удалить это из локального репо. Как его очистить?

Ответ 1

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

Подобно этому на окнах Documents and Settings\your username\.m2 или $home/.m2 на Linux

Ответ 2

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

Цель purge-local-repository, в стандартном плагине зависимостей Maven, удалит локально установленные зависимости этого проекта из вашего кеша. При желании вы можете повторно разрешать их из удаленных репозиториев одновременно.

Это должно использоваться как часть фазы проекта, поскольку оно относится к зависимостям для содержащего проекта. Также транзитивные зависимости также будут очищаться (локально) по умолчанию.

Если вы хотите явно удалить один артефакт из кеша, используйте purge-local-repository с параметром manualInclude. Например, из командной строки:

mvn dependency:purge-local-repository -DmanualInclude="groupId:artifactId, ..."

Документация подразумевает, что по умолчанию это не удаляет транзитивные зависимости. Если вы работаете с нестандартным расположением кэша или на нескольких платформах, они более надежны, чем удаление файлов "вручную".

Полная документация находится в спецификации maven-dependency-plugin.

Примечание. Предыдущие версии плагина maven dependency имели цель manual-purge-local-repository, которая теперь (версия 2.8) подразумевается использованием manualInclude. Необходимо также прочитать документацию для manualIncludes (с помощью s).

Ответ 3

По крайней мере, на текущей версии maven вам нужно добавить ключ -DreResolve = false, если вы намерены удалить зависимости из своего локального репо, не перезагружая их.

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

удаляет зависимости, не загружая их снова.

Ответ 4

Удалите все вещи (jar, pom.xml и т.д.) в локальном каталоге ~/.m2/repository/phonegap/1.1.0/, если вы используете ОС Linux.

Ответ 5

Я столкнулся с той же проблемой, перебрал все предложения выше, но ничего не получалось. Наконец я удалил обе папки .m2 и .ivy, и это сработало для меня.

Ответ 6

  • cd ~/.m2
  • git init
  • git commit -am "some comments"
  • cd /path/to/your/project
  • mvn install
  • cd ~/.m2
  • git reset --hard