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

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

enter image description here

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

UPDATE: после некоторых изменений я нашел, как каким-то образом решить мою проблему. Вот что я сделал: enter image description here

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

26 ответов


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

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

вы можете включить такие функция собирается Файл > Настройки > Maven > импорт, есть флажок, который говорит "импортировать проекты Maven автоматически".

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

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

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

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


думал, что брошу свои $ 0.02 сюда: для меня исправление этого должно было пойти в

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

ref:http://youtrack.jetbrains.com/issue/IDEA-98425 (который может иметь несколько других идей тоже)

Update: снова столкнулся с этим, на этот раз с IntelliJ 15, у которого больше нет опции "Использовать maven3 для импорта". Причина была в том, что иногда IntelliJ "не разбирает зависимости maven правильно", и если он не может разобрать один из них правильно, он отказывается от все из них, видимо. Вы можете сказать, если это так, открыв окно Maven projects tool (меню View - > Tool Windows - > Maven Projects). Затем разверните один из ваших проектов maven и его зависимости. Если все зависимости подчеркнуты красным цветом, "Хьюстон, у нас есть проблема". enter image description here

вы можете фактически увидеть реальные сбой при наведении указателя мыши на само имя проекта.

enter image description here

в моем случае он сказал "проблемы: нет версий, доступных для XXX" или "не удалось прочитать дескриптор для организации артефактов.xy.Z " ref:https://youtrack.jetbrains.com/issue/IDEA-128846 и https://youtrack.jetbrains.com/issue/IDEA-152555

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

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

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


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


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

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

конечно, все необходимые зависимости и пользовательские репозитории должны быть определены непосредственно в .


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

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

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

когда откроется этот экран, разверните меню Maven и нажмите "импорт"

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

нажмите OK. Теперь перейдите к Красная зависимость В пом.xml, выберите красную лампочку и нажмите "Обновить индексы Maven".


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

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

и проверьте, связан ли pom.XML-это игнорируется.


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

enter image description here

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

enter image description here


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

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

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


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

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

hibernate
  src/main
  src/test

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

hibernate
src/main
src/test

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

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

существует несколько способов перечитывания зависимостей в случае необходимости. Если вы перейдете на вкладку "Проекты Maven", вверху появится значок " реимпорт всех проектов Maven слева от вкладки. Если вы подозреваете, что идея запуталась, вы можете нажать на файл > аннулировать кэши.


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

Navigage: Настройки / Сборка, Выполнение, Развертывание | Maven

укажите "домашний каталог Maven" - место, где вы установили maven


импортировать проект. Если вы устанавливаете maven plugin, вы можете использовать это.

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


перейдите в структуру проекта, в разделе параметры проекта, модули выберите таблицу зависимостей. Для каждой зависимости измените область с "Test" на "Compile".


у меня была аналогичная проблема с моим 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>

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

спасибо


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


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


угон немного, чтобы добавить, что в конечном итоге работает для меня:

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

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

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


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

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

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


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

после этого все subdependencies все устаканилось, как и в предыдущей версии IntelliJ.


Maven-Reimport не работал для меня. У меня есть весенний проект в STS (Eclipse), и мое решение-импортировать проект в идею так:

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

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


первый путь проверки, указанный для файл настроек пользователя: на Настройки - > Сборка, Выполнение, Разработка - > Инструменты Сборки - > Maven . Поле должно иметь путь настройки.в XML вашего maven. Также настройки.xml должен иметь правильный путь к удаленному репозиторию.


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


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


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


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

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

перейти к " Run "- > " редактировать конфигурации...', найдите свое приложение, убедитесь, что раздел" перед запуском: "расширен, нажмите зеленый знак плюс и выберите"построить проект".

enter image description here


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

enter image description here

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


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

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