Заставить Intellij IDEA перечитать все maven-зависимости


297

Как заставить intellij идею перечитать / обновить все зависимости, указанные в pom-файле?

Ответы:


354

Нажмите Ctrl+ Shift+, Aчтобы найти действия, и введите «reimport», вы найдете «Reimport All Maven Projects».

На Mac используйте + + Aвместо.


1
Допустим, у меня есть 5 модулей, каждый из которых основан на maven, в одном проекте, и я делаю это. Применима ли эта команда ко всем модулям, только к выбранному или первому в проекте при запуске?
slartibartfast

это изменилось? Я не вижу реимпорта 2017.1 в Maven
Winnemucca

1
@Winnemucca Я только что сделал это в 2017.2. В ожидании, чтобы закончить сейчас.
mrClean

1
Я должен был включить плагин Maven, чтобы сделать это.
codefreak

1
@Winnemucca, вы можете щелкнуть правой кнопкой мыши на помпе, перейти к Maven в раскрывающемся списке и выбрать Reimport.
Джонс-Крис

125

Откройте вкладку / окно «Maven Projects» и нажмите «Reimport All Maven Projects» в верхнем левом углу, чтобы перезагрузить все зависимости из их репозиториев. Строка состояния информирует о процессе.

Что позволяет вам думать, что это не работает правильно? Может быть, какая-либо из зависимостей не может быть загружена из хранилища?


1
у нас есть сломанная привычка использовать версию без снимка для текущей разработки, и межпроектные зависимости иногда терпят неудачу.
kubek2k

1
Боюсь, эта проблема зависит от Maven. Maven проверяет только обновления на SNAPSHOT. По определению, не-SNAPSHOT версии никогда не изменятся, поэтому maven не должен проверять наличие более новых версий, чем в локальном хранилище. (Довольно грубым) решением было бы удалить библиотеку из локального репозитория перед вызовом maven. Затем он должен перезагрузить библиотеку.
Магоми

9
похоже, что все силы реимпортируются с флагом -U, что я и хотел :)
kubek2k

Я щелкнул правой кнопкой мыши по родительскому проекту и выполнил Maven -> Reimport и надеялся, что он обновит зависимости всех дочерних элементов, но этого не произошло. Спасибо за решение!
Botchniaque

6
Чтобы найти вкладку / окно «Проекты Maven», перейдите в «Вид»> «Окна инструментов»> «Проекты Maven»
Кевин Уилер,

64

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

Чтобы включить проверку измененной зависимости, хотя номер версии не изменился, перейдите на вкладку «Проекты Maven», выберите «Настройки Maven» и там активируйте «Всегда обновлять снимки».


2
ха! автоматические обновления в проекте JAVA ... Я должен сказать, что это не всегда победитель ... и даже может быть нахмурился с Maven 3+
beauXjames

@beauXjames .. это не сработало для меня, но я столкнулся с той же проблемой. как решить это.
Sathesh

1
Я часто захожу в локальный каталог репозитория ({user} \. M2 \ ...) и удаляю те, которые, как мне известно, связаны с моим проектом, затем разрешает процессу установки выйти и извлечь их заново с нуля, чтобы не было конфликтов версий
beauXjames

От help: «Установите этот флажок, если вы хотите, чтобы IntelliJ IDEA обновлял снимки при синхронизации». Другими словами, он не полностью автоматический - вы должны Synchronize(в контекстном меню или Ctrl-Alt-Y), но включение этой опции заставляет его получать обновленные SNAPSHOTверсии. ВНИМАНИЕ: Могут быть и другие тонкости, такие как Import Changes- кажется, это пока не совсем воспроизводимо для меня. Может быть, все это было в моем воображении - то, что, кажется, всегда работает, является полным, reimportкак предлагается в других ответах.
nobar

36

Для IntelliJ IDEA 14.0

Project> [название вашего проекта]> щелкните правой кнопкой мыши> Maven> Reimport


17

Если повторный импорт не работает (т.е. не удаляет старые версии зависимостей после обновления pom), есть еще один шанс:

  • открыть настройки проекта (CTRL + SHIFT + ALT + S)
  • в модулях удалите все библиотеки, которые вы хотите импортировать (например, дубликаты)
  • ИДЕЯ предупредит, что некоторые все еще используются, подтвердите
  • Применить и выбрать ОК
  • затем повторно импортируйте все maven проекты.

16

Самая левая кнопка (синий цикл) ниже также повторно импортирует все maven проекты:

введите описание изображения здесь


9

запустить эту команду mvn -U clean install


3
Хотя это решение, оно должно быть сделано из CLI. Вопрос в том, чтобы сделать это изнутри IDEA.
talonx

в среде IDE вы можете выполнить цель maven и использовать приведенную выше команду, не открывая CLI или терминал
Babajide Apata

2
Это побеждает цель интеграции maven в IDEA.
talonx

1
Мы говорим об опции -U, которой нет в IDEA. Опция «Reimport» звучит так, как есть, но это не так.
talonx

1
Я вижу, что вы имеете в виду ввод и выполнение maven цели, и в этом случае это возможно. Тем не менее, я имел в виду, что -U нет во встроенном меню справа («Проекты Maven»).
talonx

3

У меня была проблема, когда IntelliJ не смог скомпилировать классы, утверждая, что зависимости между проектами отсутствовали. Повторное импортирование проекта, как предложено в ответах на этот вопрос, не решило проблему. Решение для меня было:

  1. удалить все проекты (вкладка проекта / щелкнуть правой кнопкой мыши на корневой папке / maven / удалить проекты);
  2. закройте редактор;
  3. скомпилировать все проекты с Maven из командной строки;
  4. открыть редактор в том же проекте;
  5. снова добавить проекты в maven (вкладка maven / добавить проекты maven (зеленый +) / выбрать корневую помпу);

ВНИМАНИЕ: в некоторых проектах вам может потребоваться увеличить максимальный объем памяти для импорта в Maven (настройки maven на вкладке maven / Импорт / Параметры VM для средства импорта).



0

Если вы используете диапазоны версий для каких-либо зависимостей, убедитесь, что IntelliJ использует Maven 3 для импорта проекта. Вы можете найти эту настройку в: Settings > Maven > Importing > Use Maven3 to import project. В противном случае вы можете обнаружить, что версии SNAPSHOT импортированы неправильно.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.