Змусити Intellij IDEA перечитати всі основні залежності


297

Як змусити ідею intellij перечитати / оновити всі залежності, вказані у файлі pom?

Відповіді:


354

Натисніть Ctrl+ Shift+, Aщоб знайти дії, і введіть "реімпорт", ви знайдете "Reimport All Maven Projects".

На Mac використовуйте + + Aзамість цього.


1
Скажімо, у мене в одному проекті є 5 модулів, всі вони засновані на Maven, і я це роблю. Чи застосовується ця команда для всіх модулів, лише вибраного або першого в проекті, коли він працює?
slartibartfast

чи змінилося це? Я не бачу реімпорту на 2017.1 в Мейвен
Віннемукка

1
@Winnemucca Я щойно це зробив 2017.2. Чекаю, коли це закінчиться зараз.
mrClean

1
Мені довелося ввімкнути плагін Maven для цього.
codefreak

1
@Winnemucca ви можете клацнути правою кнопкою миші на пом, перейти до Maven у спадному меню та вибрати Reimport.
jones-chris

125

Відкрийте вкладку / вікно "Maven Projects" і натискаючи "Reimport All Maven Projects" у верхньому лівому куті починає перезавантажувати всі залежності зі своїх сховищ. Рядок стану інформує про процес.

Що дозволяє вважати, що це працює не правильно? Можливо, будь-яку із залежностей неможливо завантажити із сховища?


1
у нас порушена звичка використовувати нескінченну версію для постійної розробки, а міжпроектні залежності іноді виходять з ладу.
kubek2k

1
Я боюся, що ця проблема залежить від Maven. Maven перевіряє лише оновлення на SNAPSHOT. За визначенням, не-SNAPSHOT версії ніколи не змінюватимуться, тому maven не повинен перевіряти новіші версії, ніж це у локальному сховищі. (Досить грубим) рішенням було б видалити бібліотеку з локального сховища перед тим, як викликати maven. Потім він повинен перезавантажити бібліотеку.
магомі

9
виявляється, що реімпорт усіма силами прапор -U те, що я хотів :)
kubek2k

Я клацав правою кнопкою миші на батьківському проекті і робив Maven -> Reimport і сподівався, що оновить залежність усіх дітей, але це не відбулося. Дякую за рішення!
botchniaque

6
Щоб знайти вкладку / вікно "Maven Projects", перейдіть до меню Перегляд> Інструмент Windows> Maven Projects
Kevin Wheeler

64

Також є один корисний параметр, який дозволяє IntelliJ перевіряти наявність нових версій залежностей, навіть якщо номери версій не змінилися. У нас було місцеве сховище Maven та проект знімків, який кілька разів оновлювався, але номери версій залишалися однаковими. Проблема полягала в тому, що IntelliJ / Maven не оновлював цей проект через фіксований номер версії.

Щоб увімкнути перевірку змінити залежність, хоча номер версії не змінився, перейдіть на вкладку "Maven Projects", виберіть "Maven settings" і там активуйте "Завжди оновлювати знімки".


2
га! автоматичні оновлення в проекті JAVA ... Я мушу сказати, що це НЕ завжди переможець ... і, можливо, навіть нахмуриться w / Maven 3+
beauXjames

@beauXjames .. це не спрацювало для мене, але я точно стикаюся з тією ж проблемою. як це вирішити.
Sathesh

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

З help: "Установіть цей прапорець, якщо ви хочете, щоб IntelliJ IDEA оновлював знімки під час синхронізації." Іншими словами, це не повністю автоматично - вам потрібно Synchronize(у меню правою кнопкою миші або Ctrl-Alt-Y), але якщо ввімкнути цю опцію, це захопить оновлені SNAPSHOTверсії. ПОПЕРЕДЖЕННЯ: Можуть бути задіяні й інші тонкощі, наприклад, Import Changes- для мене це поки що не є ідеально відтворюваним. Можливо, це все було в моїй уяві - те, що, здається, завжди працює, є повним, reimportяк пропонується в інших відповідях.
nobar

36

Для IntelliJ IDEA 14.0

Проект> [назва вашого проекту]> клацніть правою кнопкою миші> Maven> Reimport


17

Якщо реімпорт не працює (тобто не видаляє старі версії залежностей після оновлення пом), є ще один шанс:

  • відкрити налаштування проекту (CTRL + SHIFT + ALT + S)
  • на модулях видаліть усі вкладки, які ви хочете повторно імпортувати (наприклад, дублікати)
  • IDEA попередить, що деякі з них все ще використовуються, підтвердіть
  • Застосуйте та виберіть Добре
  • потім реімпортувати всі проекти Maven.

16

Найменша ліва кнопка (синій цикл) внизу також повторно імпортує всі проекти Maven:

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


9

запустіть цю команду mvn -U clean install


3
Хоча це рішення, це потрібно зробити з CLI. Питання в тому, щоб зробити це зсередини IDEA.
талонкс

на IDE ви можете виконати ціль maven і скористатися командою вище, не відкриваючи CLI або термінал
Babajide Apata

2
Такі види перемагають мету зробити інтеграцію в IDEA.
талонкс

1
Ми говоримо про варіант -U, якого немає в IDEA. Варіант "Реімпорт" звучить так, як є, але це не так.
talonx

1
Я бачу, що ви маєте на увазі введення та виконання основної мети, в такому випадку це можливо. Однак я мав на увазі, що -U не присутній у вбудованому меню праворуч ("Maven Projects").
талонкс

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.