mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar
Я использую указанную выше команду для установки локальной банки в локальное репо maven. Теперь у меня есть зависимость от репозитория maven. Я хочу удалить это из локального репо. Как его почистить?
Ответы:
Хотя для этого вы можете выполнить команду maven, проще просто удалить файлы из репозитория вручную.
Как это в Windows
Documents and Settings\your username\.m2
или$HOME/.m2
Linuxисточник
.m2/repository directory
. Сотрудник ранее удалил каталог .m2, и это вызывает проблемы, потому что в нашем проекте мы должны изменитьsettings.xml
файл..m2/repository
каталога вы также удалите все файлы плагинов maven. Тогда как с помощьюpurge-local-repository
команды вы удаляете только зависимости..m2/repository
организована по идентификатору группы Maven, поэтому вы можете просто удалить подкаталог, соответствующий артефакту, который вы хотите удалить.Хотя удаление файлов вручную работает, существует официальный способ удаления зависимостей вашего проекта из локального (кешированного) репозитория и, при необходимости, повторного разрешения их из удаленных репозиториев.
Цель
purge-local-repository
стандартного плагина зависимостей Maven - удалить локально установленные зависимости этого проекта из вашего кеша. При желании вы можете повторно разрешить их из удаленных репозиториев одновременно.Это следует использовать как часть фазы проекта, потому что это относится к зависимостям для содержащего проекта. Также по умолчанию будут очищены транзитивные зависимости (локально).
Если вы хотите явно удалить один артефакт из кеша, используйте
purge-local-repository
сmanualInclude
параметром. Например, из командной строки:Документация подразумевает, что по умолчанию это не удаляет транзитивные зависимости. Если вы работаете с нестандартным расположением кэша или на нескольких платформах, это более надежно, чем удаление файлов «вручную».
Полная документация находится в спецификации maven-dependency-plugin .
Примечание : старые версии
dependency
плагина maven преследовалиmanual-purge-local-repository
цель, которая теперь (версия 2.8) подразумевается использованиемmanualInclude
. Также следует прочитать документацию дляmanualIncludes
(с символомs
).источник
.jar
s, которые не были загружены из maven central или какого-либо другого репозитория. Когда я запускаю эту команду, она избавляется от всех.jar
автоматически загружаемых s, но когда доходит до.jar
s, которые я установил вручную,[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:purge-local-repository (default-cli) on project alloy-generator: Failed to refresh project dependencies for: myartifact: required artifacts missing: [ERROR] manually-downloaded-and-installed.jar ...
.jar
, но все равно выдает ошибку. Поэтому для.jar
s, которые были установлены вручную, я бы рекомендовал удалить вручную, а не использовать этот метод, потому что maven создает некоторые странные файлы, такие какyourjar.jar.lastUpdated
иyourjar.pom.lastUpdated
которые вам может потребоваться удалить вручную в любом случае. Но если maven автоматически управляет всеми зависимостями, это отличный способ удалить зависимости.По крайней мере, в текущей версии maven вам необходимо добавить переключатель -DreResolve = false, если вы собираетесь удалить зависимости из локального репо без их повторной загрузки.
удаляет зависимости без их повторной загрузки.
источник
Удалите все (jar, pom.xml и т. Д.) В вашем локальном
~/.m2/repository/phonegap/1.1.0/
каталоге, если вы используете ОС Linux.источник
Я столкнулся с той же проблемой, рассмотрел все предложения выше, но ничего не помогло. Наконец, я удалил обе папки .m2 и .ivy, и это сработало для меня.
источник
cd ~/.m2
git init
git commit -am "some comments"
cd /path/to/your/project
mvn install
cd ~/.m2
git reset --hard
источник