it-roy-ru.com

Импорт зависимостей Maven в IntelliJ IDEA

У меня небольшой вопрос о IntelliJ IDEA 11. Я только что импортировал проект из Subversion - это проект maven. Но у меня есть проблема в зависимостях библиотеки maven, так что я не могу автоматически включить все зависимости maven - IDEA показывает ошибки зависимости только при открытии этого класса/Вот что я получаю здесь:

enter image description here

Поэтому я хочу, чтобы все зависимости добавлялись автоматически - возможно ли это, или мне нужно пройти через все файлы классов, чтобы определить и добавить maven-зависимости ?!

ОБНОВЛЕНИЕ: После внесения некоторых изменений я нашел, как каким-то образом решить мою проблему. Вот что я сделал: enter image description here

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

158
Zaur Guliyev

IntelliJ должен автоматически загружать и добавлять все ваши зависимости в classpath проекта, если ваше POM соответствует требованиям и все зависимости доступны.

При импорте проектов Maven в IntelliJ обычно появляется информационное окно с вопросом, хотите ли вы настроить Auto-Import для проектов Maven. Это означает, что если вы внесете какие-либо изменения в свой POM, эти изменения будут загружены автоматически.

Вы можете включить такую ​​функцию, выбрав «Файл»> «Настройки»> «Maven»> «Импорт», есть флажок «Импортировать проекты Maven автоматически».

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

  • Закройте окно своего проекта (и IntelliJ) и удалите все файлы *.iml и все папки .idea (по одному на модуль)
  • Запустите mvn clean install из командной строки
  • Повторно импортируйте проект в IntelliJ и обратите внимание, когда он просит включить автоматический импорт

Обновление IntelliJ 2016 :

Параметр Импортировать проекты Maven автоматически был перемещен в Сборка, Выполнение, Развертывание> Инструменты сборки> Maven> Импорт в ваших настройках IntelliJ.

228
Alonso Dominguez

Думал, что я добавлю сюда свои 0,02 доллара: для меня решение этой проблемы - 

Файл [меню] -> Настройки -> maven -> импорт и снимите флажок «используйте maven3 для импорта проекта» 

ref: http://youtrack.jetbrains.com/issue/IDEA-98425 (у которого могут быть и другие идеи)

Обновление: столкнулся с этим снова, на этот раз с IntelliJ 15, у которого больше нет опции «использовать maven3 для импорта». Причина заключалась в том, что иногда IntelliJ «неправильно разбирает maven-зависимости», и если он не может разобрать одну из них правильно, он, очевидно, отказывается от all из них. Вы можете определить, так ли это, открыв окно инструментов проектов maven (меню «Вид» -> «Окна инструментов» -> «Проекты Maven»). Затем разверните один из ваших проектов Maven и его зависимости. Если все зависимости подчеркнуты красным, «Хьюстон, у нас проблема». enter image description here

Вы можете увидеть сбой real, наведя курсор мыши на имя самого проекта. 

enter image description here

В моем случае он сказал «Проблемы: нет доступных версий для XXX» или «Не удалось прочитать дескриптор для артефакта org.xy.z» ref: https://youtrack.jetbrains.com/issue/IDEA-128846 и https://youtrack.jetbrains.com/issue/IDEA-152555

Кажется, в этом случае я имел дело с банкой, у которой не было связанного файла pom (в нашем репозитории Maven Nexus, а также в моем локальном репозитории). Если это также ваша проблема, то "urrent обходите стороной: если вам на самом деле не нужно использовать классы из этого jar-кода в вашем собственном коде (например, только для транзитивной зависимости maven), вы можете на самом деле избежать комментирования из pom (временно) перезагрузите проект maven, а затем раскомментируйте его. Каким-то образом после этого момента IntelliJ «запоминает» свои старые рабочие зависимости. Добавление временного исключения maven временно может также сделать это, если вы сталкиваетесь с ним из транзитивной цепочки зависимостей. "

Еще одна вещь, которая может помочь, - это использовать «более новую версию» maven, чем в комплекте 3.0.5 . Чтобы настроить его на использование по умолчанию, закройте все окна intellij, затем откройте настройки -> build , выполнение и развертывание -> инструменты сборки -> maven, и измените домашний каталог maven, в настройках должно быть написано «Для проекта по умолчанию» вверху, хотя вы можете настроить его и для конкретного проекта, если Вы "импортируете" после настройки.

Другие вещи, которые могут помочь: удаление папок кеша intellij (windows: HOMEPATH /. {IntellijIdea, IdeaC} XXX linux ~/.IdeaIC15) и/или удаление и переустановка самого IntelliJ. GL!

59
rogerdpack

При импорте проекта выберите pom.xml вместо каталога проекта. Он должен работать.

28
chichi

Попробуйте повторно импортировать проект из панели Maven Projects в IntelliJ IDEA. Он должен загрузить и настроить все зависимости, определенные в вашем pom.xml автоматически.

Если по какой-либо причине загрузка не работает из IDEA, попробуйте mvn install из командной строки и посмотрите, можно ли получить зависимости.

Конечно, все необходимые зависимости и любые пользовательские репозитории должны быть определены непосредственно в файле pom.xml.

19
CrazyCoder

Для IntelliJ 2016-2.4 (и я полагаю, что другие новые версии):

Вид> Инструменты Windows> Проекты Maven

На открывшейся панели инструментов выберите Maven settings (значок набора инструментов).

Когда откроется этот экран, разверните меню Maven и нажмите «Импорт».

Здесь нажмите «Импортировать проекты Maven автоматически». Также убедитесь, что опция «JDK for Importer» соответствует версии JDK, которую вы собираетесь использовать.

Нажмите ОК. Теперь перейдите к красной зависимости в вашем pom.xml, выберите красную лампочку и нажмите «Обновить индексы Maven».

12
Paul Back

Что помогло мне:

Навигация: Настройки | Сборка, выполнение, развертывание | специалист

Укажите «Maven home directory» - место, где вы установили Maven

8
Anatolii Stepaniuk

Если некоторые модули maven не компилируются, проверьте, находится ли их файл pom.xml в списке «игнорируемых файлов». В IntelliJ goto 

настройки -> настройки проекта -> maven -> игнорируемые файлы

и проверьте, игнорируется ли связанный файл pom.xml.

6
Udo

Откройте IntelliJ Idea, перейдите к Файл> Другие настройки> Настройки по умолчанию ...> Maven (Настройки)> Импорт или | Preferences > Maven > Importing

enter image description here

Нажмите на Включить автоимпорт в консоли.

enter image description here

5
Prashanth Sams

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

Например, если мой проект

hibernate
  src/main
  src/test

три пути могут быть импортированы как верхние узлы:

hibernate
src/main
src/test

Если это так, зависимости кажутся правильными, но они не будут использоваться, пока вы не удалите лишние пути (в этом случае src/main и src/test). Как только вы это сделаете, обновите и нажмите Build> Rebuild Project. IDEA подберет зависимости.

Признак этой проблемы заключается в том, что IDEA предупреждает вас о дублированном пути, когда вы вручную проверяете библиотеку (второй снимок экрана в вопросе).

Есть несколько способов перечитать зависимости в случае необходимости. Если вы перейдете на вкладку «Проекты Maven», в левом верхнем углу вкладки появится значок «Импортировать все проекты Maven». Если вы подозреваете, что IDEA запутались, вы можете нажать «Файл»> «Неправильные кэши».

4
Jano

Когда вы создаете новый проект, вам просто нужно выбрать опцию:

...
Импорт проекта из внешней модели
Создать IDEA структуру проекта поверх существующей внешней модели (Eclipse, Maven ...)
...

Вы найдете это довольно прямо оттуда.
И в вашем случае вы можете закрыть свой проект и просто создать новый. Выберите каталог вашего проекта, который переопределит его, сделав его проектом Maven.

4
Markus Coetzee

Зайдите в структуру вашего проекта, в разделе «Настройки проекта», «Модули» выберите таблицу зависимостей. Для каждой зависимости измените область действия с «Тест» на «Компиляция».

3
Bud

Реимпортируйте проект. Если вы установите плагин Maven, вы можете использовать это.

Щелкните правой кнопкой мыши по проекту -> Maven -> Reimport

3
Damith Ganegoda

Первый путь проверки Указан для файла настроек пользователя: in Настройки -> Сборка, выполнение, разработка -> Инструменты сборки -> Maven . Поле должно иметь путь к settings.xml вашего мавена. Также в файле settings.xml должен быть указан правильный путь к удаленному хранилищу.

2
amol13

У меня была похожая проблема с моим macbook, я просто внес небольшое изменение в pom.xml, и он начал загружать все зависимости:

Более ранние зависимости были написаны ниже для моей машины с Windows:

<dependencies>
 <dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>
</dependencies>

Я просто удалил теги <dependencies> и </dependencies>, и он начал загружать все зависимости:

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>

Я не уверен, что это сработает у вас или нет .. но у меня сработало нормально.

Спасибо

1
Amit Joshi

Я столкнулся с той же проблемой и попробовал все предложенное, что не решило проблему, я использовал Intellij версии 13.1.3

Наконец, потратив более пары часов, пытаясь это исправить, я решил попробовать обновленную версию и открыл проект в версии 14.1.4, который в конечном итоге решил проблему. Я бы посчитал это вероятной ошибкой в ​​предыдущей версии.

Надеюсь, это поможет!

1
sjaiswal

Я решил эту проблему, обновив мой файл settings.xml с помощью правильной конфигурации зеркала. Кажется, intellij будет пытаться загружать метаданные из хранилища каждый раз, когда импортируется модуль maven.

1
Abel Zhan

Удаление папки .idea из каталога проекта, а затем повторный импорт проекта как проекта Maven - вот что мне помогло.

1
Janac Meena

Maven - Reimport не работает для меня . У меня есть проект Spring в STS (Eclipse), и мое решение состоит в том, чтобы импортировать проект в IDEA следующим образом:

1) Файл - Новый - Проект из существующих источников ... - выберите каталог - выберите Eclipse.
2) Установите в настройках автоимпорта Maven значение true.
3) Затем щелкните правой кнопкой мыши файл pom.xml и выберите «Добавить как проект Maven».

После этого он импортировал все.

1
Svitlana Onish

Если в правом нижнем углу написано «2 процесса запущены ...» или что-то подобное, возможно, вам просто нужно подождать, пока это не закончится, так как загрузка всех банок может занять некоторое время.

1
djechlin

Я смог решить эту проблему, удалив ненужные модули из списка Настройки проекта -> Модули.

 enter image description here

Оказывается, эти дополнительные модули были созданы автоматически IntelliJ IDEA, когда я создал проект IntelliJ путем импорта из папки проекта (вместо открытия pom.xml). Затем, после объявления проекта как проекта Maven, были созданы соответствующие модули, и существующие модули конфликтовали с ними. Также возможно исключить эти модули при создании проекта.

1
elyor

Угоняю немного, чтобы добавить, что в итоге сработало для меня:

Перейдите на боковую панель Maven Projects в правой части IDE и убедитесь, что ваши зависимости правильно указаны в вашем модуле. Предполагая, что это так, просто попросите IDEA затем повторно импортировать (первая кнопка вверху выглядит как две синие стрелки, образующие круг против часовой стрелки).

Как только я это сделал и позволил IDEA перезагрузить проект для меня, все мои зависимости были волшебным образом поняты.

Для справки: это было с IDEA 13.1.2

1
Sunspar

Я столкнулся с проблемой, что некоторые зависимости не могут быть решены в IntelliJ 2016.3.X. Это можно исправить, изменив Maven home directory в Настройках> Сборка, Выполнение, Развертывание> Инструменты сборки> Maven с Bundled (Maven 3) на /usr/share/maven.

После этого все зависимости были разрешены, как и в предыдущих версиях IntelliJ.

1
Johannes Stadler

У меня возникла та же проблема, и я попробовал все ответы, упомянутые здесь, но ни один не помог.

Простое решение - перейти в папку вашего проекта, удалить все файлы .idea и .iml и перезапустить IntelliJ ide. Оно работает. Не нужно ничего делать с настройками.

1
Yashaswi N P

Мне пришлось правильно установить домашний каталог Maven в настройках и установить флажок «Импортировать проект maven автоматически» в разделе импорта в настройках. После этого он начал разрешать зависимости.

0
pavithraCS

В Maven зависимости были включены для меня, когда я удалил раздел dependencyManagement xml и просто имел зависимости непосредственно в разделе проекта

0
seahorse

В моем случае, один из модулей был по какой-то причине проигнорирован Чтобы решить эту проблему: Щелкните правой кнопкой мыши проблемный модуль и выберите «Отклонить проекты». 

 unignore project example

0
KernelMode

У меня была похожая проблема, в моем случае я использую пользовательский settings.xml, который не был выбран из IntelliJ. 

Решение:
File > Settings > Build, Execution, Deployment > Maven: User settings file (выбрал здесь мои пользовательские settings.xml).

0
petre

Если ничего не помогает, проверьте, действительно ли файл jar в вашем локальном репозитории .m2 действителен и не поврежден. В моем случае файл был загружен не полностью.

0
Markus Barthlen

У меня ничего не получалось, пока я не попробовал "File --> Open", а затем перешел к самому файлу POM. 

0
gorbysbm

Кажется, проблема в том, что, несмотря на перечисление ваших зависимостей в файле pom.xml, IntelliJ IDEA не перестраивает эти зависимости при запуске вашего проекта.

Что сработало для меня это:

Перейдите в «Выполнить» -> «Редактировать конфигурации ...», найдите свое приложение, убедитесь, что раздел «Перед запуском:» развернут, нажмите зеленый знак плюс и выберите «Построить проект».

 enter image description here

0
Mike Nakis