Принудительная повторная загрузка зависимости релиза с помощью Maven - PullRequest
111 голосов
/ 01 ноября 2011

Я работаю над проектом с зависимостью X. X, в свою очередь, зависит от Y.

Раньше я явно включал Y в pom моего проекта. Тем не менее, он не использовался и, чтобы сделать вещи чище, я вместо этого добавил его в pom X в качестве зависимости. X помечен как зависимость выпуска.

Проблема в том, что после удаления Y из pom моего проекта и добавления его в pom X мой проект не поднимает его на mvn -U clean package. Я знаю -U обновить снимки, но не релизы.

Итак, без удаления каталога ~ / .m2 / repository как я могу принудительно повторно загрузить pom X? Кроме того, я попытался запустить dependency:purge-local-repository, и он тоже не сработал.

Ответы [ 12 ]

138 голосов
/ 24 декабря 2011

Вы не можете заставить Maven повторно загружать зависимости, но вместо этого вы можете удалить зависимости, которые были неправильно загружены, используя mvn dependency:purge-local-repository

См .: http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html

49 голосов
/ 14 августа 2013

Я только что удалил свой ~ / .m2 / репозиторий, и это привело к повторной загрузке;)

34 голосов
/ 29 октября 2015

Я думаю, что следующая команда может вам помочь!


mvn -U clean install
18 голосов
/ 17 мая 2016

Спасибо Али Токмену за ответ.Мне удалось принудительно удалить определенную локальную зависимость с помощью следующей команды:

mvn dependency:purge-local-repository -DmanualInclude=com.skyfish:utils

При этом он удаляет utils из моего репозитория .m2 / и всегда повторно загружает зависимость utils JAR, когдаЯ бегу mvn clean install.

14 голосов
/ 14 апреля 2015

Проект правой кнопкой мыши -> Maven -> Обновить проект и установите флажки, как на снимке экрана. Также будут обновлены релизы:)

enter image description here

7 голосов
/ 02 августа 2016
mvn clean install -U

-U означает принудительное обновление зависимостей.

Если вы хотите обновить отдельную зависимость без очистки или -U, вы можете просто удалить ее из локального репозитория и затем собрать.

6 голосов
/ 01 ноября 2011

Когда вы добавили его в X, вы должны были увеличить номер версии X, т.е. X-1.2
Тогда X-1.2 должен был быть установлен / развернут, и вы должны были изменить зависимость своих проектов от X, чтобы она зависела от новой версии X-1.2

4 голосов
/ 27 февраля 2014

Если вы действительно хотите принудительно загрузить все зависимости, вы можете попытаться повторно инициализировать весь репозиторий maven.Как и в этой статье , уже описанной, вы можете использовать:

mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
2 голосов
/ 18 сентября 2018

Просто удалите ~ / .m2 / repository ..... / actual_path, куда приходит недопустимый LOC, поскольку он заставляет повторно загрузить удаленные файлы JAR. Не удаляйте всю папку репозитория . Вместо этого удалите конкретную папку, из которой происходит ошибка.

0 голосов
/ 22 августа 2018

Если вы знаете идентификатор группы X, вы можете использовать эту команду для повторной загрузки всего X и его зависимостей

mvn clean dependency:purge-local-repository -DresolutionFuzziness=org.id.of.x

Она делает то же самое, что и другие ответы, предлагающие использоватьdependency:purge-local-repository, но удаляет и перезагружает только все, что связано с X.

...