Я работаю над проектом с зависимостью 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
и это тоже не сработало.
X
pom, то он должен представлять собой новый релиз, даже если это только изменение номера патча:1.3
->1.3.1
. Таким образом, это устранит эту проблему с самого начала.Ответы:
Вы не можете заставить Maven повторно загружать зависимости, но вместо этого вы можете удалить зависимости, которые были неправильно загружены с помощью
mvn dependency:purge-local-repository
Смотрите: http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html
источник
mvn dependency:purge-local-repository clean package
, возможно, один проект удалит такую же зависимость в локальном репозитории, пока другой проект выполняет компиляцию. Как избежать?Я просто удалил свой ~ / .m2 / репозиторий, и это привело к повторной загрузке;)
источник
Я думаю, что следующая команда может помочь вам!
источник
Благодаря Али Токмен отвечу. Мне удалось принудительно удалить конкретную локальную зависимость с помощью следующей команды:
При этом он удаляется
utils
из моего .m2 / репозитория и всегда перезагружаетutils
зависимость JAR при запускеmvn clean install
.источник
Проект правой кнопкой мыши -> Maven -> Обновить проект и установите флажки, как на снимке экрана. Это также обновит релизы :)
источник
-U означает принудительное обновление зависимостей.
Если вы хотите обновить отдельную зависимость без чистой или -U, вы можете просто удалить ее из локального репозитория и затем собрать.
источник
Когда вы добавили его в X, вы должны были увеличить номер версии X, то есть X-1.2.
Затем X-1.2 должен был быть установлен / развернут, и вы должны были изменить зависимость своих проектов от X, чтобы она зависела от новой версии X-1.2.
источник
Если вы знаете идентификатор группы
X
, вы можете использовать эту команду для повторной загрузки всегоX
и его зависимостейОн делает то же самое, что и другие ответы, которые предлагают использовать
dependency:purge-local-repository
, но он только удаляет и перезагружает все, что связано сX
.источник
Если вы действительно хотите принудительно загрузить все зависимости, вы можете попытаться повторно инициализировать весь репозиторий maven. Как и в этой статье уже описано, вы можете использовать:
источник
Просто удалите ~ / .m2 / repository ..... / actual_path, куда приходит недопустимый LOC, поскольку он заставляет повторно загрузить удаленные файлы JAR. Не удаляйте всю папку репозитория, а удалите конкретную папку, из которой происходит ошибка.
источник
Удаление
~/.m2/repository
решит вашу проблему. Но, если вам все еще нужно сохранить старое~/.m2/repository
вы можете просто временно изменить локальный путь maven.Если вы работаете с IntelliJ, просто перейдите в настройки Maven и измените путь к локальному репозиторию куда-нибудь еще. Вам может понадобиться поставить галочку рядом с этим.
источник
Большинство ответов, представленных выше, решит проблему.
Но если вы используете IntelliJ и хотите, чтобы он просто исправлял вас автоматически, перейдите в Настройки Maven.
Сборка, выполнение, развертывание -> Инструменты сборки -> Maven
Отключить работу в автономном режиме
Включить Всегда обновлять снимки (переключаться при необходимости)
источник
Перейти к пути сборки ... удалить существующую библиотеку maven и добавить ... нажать добавить библиотеку ... щелкнуть по управляемым зависимостям maven ... затем щелкнуть настройки проекта maven ... установить флажок разрешить зависимости maven .. он загрузит все maven зависимости
источник