Maven: команда для обновления хранилища после добавления зависимости в POM


256

Я добавил новую зависимость к своему POM.

Есть ли простая команда, которую я могу запустить, чтобы загрузить эту зависимость в мой репозиторий?


Для тех, кто ищет способ сделать это в проекте Spring Boot: используйте mvnwдля вызова слоя-оболочки. Команды на этой странице работают с ним.
G_V

Ответы:


179

mvn install(или mvn package) всегда будет работать.

Вы можете использовать mvn compileдля загрузки зависимостей времени компиляции или mvn testдля времени компиляции и тестирования, но я предпочитаю то, что всегда работает.


2
Спасибо, я также обнаружил, что добавление его в pom в STS автоматически загрузит его для вас.
JJ180

15
@ Эндрю Спенсер более точный ответ - разберитесь mvn dependency:xxxтолько с зависимостями и не делайте никаких дополнительных вещей - и в этом суть вопроса.
Botchniaque

Иногда пакет mvn не может обновлять зависимости. Это случалось со мной не раз. В таких случаях нужно запустить mvn зависимость: решимость
Бинита Бхарати,

1
@BinitaBharati, вы можете добавить -U в командную строку Maven для принудительной загрузки зависимостей. Это полезно, если Maven не загружает обновленную зависимость из-за тайм-аута кэша.
BamaPookie

1
@ Кишан Задай новый вопрос. Показать макет вашего проекта (особенно там, где это importпроисходит) и используете ли вы многомодульную сборку.
Аарон Дигулла

611

Если вы хотите загружать только зависимости, ничего не делая, тогда это:

mvn dependency:resolve

Или загрузить одну зависимость:

mvn dependency:get -Dartifact=groupId:artifactId:version

Если вам нужно скачать из определенного репозитория, вы можете указать это с помощью -DrepoUrl=...


2
Я получаю эту ошибку при запуске этой команды: [ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins: maven-dependency-plugin: 2.1: get (default-cli) для проекта standalone-pom: параметры 'repositoryUrl' для цели org.apache.maven.plugins: maven-dependency-plugin: 2.1: get отсутствуют или недействительны -> [Help 1]. Указание -DrepositoryUrl = ... не работает.
Чри Ченг

1
Я думаю, что нашел решение. Параметр должен быть «repoUrl», а не «repositoryUrl».
Чри Ченг

Не решает проблему для меня: я запускаю mvn package -oсразу после - я получаю сообщение об ошибке, что плагины не могут быть загружены. Бег mvn dependency:resolve-pluginsтоже не полностью решает проблему.
Иннокентий

URL вашего репозитория могут отсутствовать / быть неправильными. В любом случае, я не думаю, что этот ответ является решением проблемы, с которой вы столкнулись. Этот ответ охватывает случай, когда Maven может найти все необходимые артефакты в настроенных хранилищах.
Эндрю Спенсер

Мне все равно, верующий вы или нет, христианин или нет ... Да благословит вас Бог этот удивительный простой ответ.
Salathiel Genèse

12

Я знаю, что это старый вопрос, но для пользователей, которые используют Mavenплагин с Eclipse under Windows, у вас есть два варианта:

  1. Если вы установили Maven как отдельное приложение:

    Вы можете использовать следующую команду в пути CMDвашего проекта:

    mvn eclipse:eclipse

    Он обновит ваш репозиторий всеми отсутствующими банками в соответствии с вашими зависимостями в вашем pom.xmlфайле.

  2. Если вы не установили Maven как отдельное приложение, вы можете выполнить следующие шаги в своем затмении:

    Щелкните правой кнопкой мыши на project-> Run As-> Run configurations.

    Затем выберите mavenBuild.

    Затем нажмите newкнопку, чтобы создать конфигурацию выбранного типа. Нажмите на рабочую область «Обзор», затем выберите свой проект и в целях укажитеeclipse:eclipse

Вы можете обратиться к тому, как запустить команду mvn eclipse: eclipse для получения дополнительной информации.


3
Запуск eclipse: eclipse после зависимостей: resolv помог мне увидеть загруженные файлы в eclipse, спасибо!
Анатолий Якимчук

2
Хотя этот ответ поможет бедным людям, застрявшим в Eclipse, я настоятельно рекомендую всем, кто использует Eclipse, найти лучшую альтернативу. Особенно, если вы собираетесь использовать Maven. Netbeans и IntelliJ впереди световых лет.
64BitBob

@ 64BitBob Предполагая, что Netbeans и IntelliJ лучше, чем Eclipse, мы всегда должны предлагать решение для тех, кто его использует. :)
cнŝdk

Я вижу, что плагин больше не доступен на рынке, но да, он работает в Eclipse 2020, не загружая ничего. Интересно, mvn eclipse: eclipse - это команда, отправленная самим eclipse, когда мы щелкаем правой кнопкой мыши -> Maven-> Обновить проект ...
Paolo

@Paolo По моему мнению, они автоматически добавили плагин в новые версии Eclipse, и да, я думаю, что это та же команда, что и опция «Обновить проект».
cнŝdk

1

Обратите внимание на область ваших зависимостей. У меня возникла проблема, когда при вызове чистой компиляции через Intellij pom загружался, а jar - нет. Был создан файл xxx.jar.lastUpdated. Затем понял, что область зависимостей была тестовой, но я запускал компиляцию. Я удалил репозитории и запустил тест mvn, и проблема была решена.


-4

Правильно, нажмите на проект. Перейдите в Maven -> Обновить проект.

Зависимости будут установлены автоматически.


Вот как это сделать в Eclipse.
user1364368

иногда, и это в конечном итоге, не всегда это работает, некоторые команды, такие как mvn package, install, dependency: resolv могут решить вашу проблему
Sham
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.