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

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

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

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

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

42 ответа

Решение

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

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

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

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

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

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

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

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

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

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

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

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

В моем случае он сказал "Проблемы: нет доступных версий для 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, затем откройте настройки -> сборка, выполнение и развертывание -> инструменты сборки -> maven и измените домашний каталог maven, он должен сказать "По умолчанию". Проект "вверху", когда вы настраиваете это, хотя вы можете настроить его и для конкретного проекта, если вы "импортируете" его после настройки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

IntelliJ 2020.3.3

Этот сделал это за меня.

Сборка, выполнение, развертывание> Инструменты сборки.

Измените «Перезагрузить проект после изменений в скриптах сборки»:

  • по умолчанию "Внешние изменения" на "Любые изменения"

При этом потребовалось некоторое время для перестройки проекта, но теперь я вижу зависимости Maven в IntelliJ:

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

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

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

hibernate
  src/main
  src/test

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

hibernate
src/main
src/test

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

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

Есть несколько способов перечитать зависимости в случае необходимости. Если вы перейдете на вкладку "Проекты Maven", в левом верхнем углу вкладки появится значок "Импортировать все проекты Maven". Если вы подозреваете, что IDEA запуталась, вы можете нажать File > Invalidate Cache.

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

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

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

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

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

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

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

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

Так что я также столкнулся с этой проблемой во многих кодах моей организации. В дополнение к ответам, предложенным выше, мы можем настроить пул распределения памяти jvm. Это связано с тем, что объем зависимостей, привнесенных в большие кодовые базы, может быть огромным для jvm для IDE, чтобы полностью построить проект. Поэтому попытался увеличить значение XMX, и это сработало! Добавлен -Xmx3072 для решения проблемы «не строить» мой Java-проект в IntelliJ.

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

  1. Проверен путь JAVA, Настройки >> Сборка >> Инструменты сборки >> Импорт >> JDK для импортера. Указал это на JAVA_HOME.

  2. mvn clean install -U

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

  3. Ре импортированные проекты Maven

У меня была похожая проблема с моим 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>

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

Спасибо

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

У меня работали недействительные кеши :

Файл> Недействительные кеши

Проверяет:

Очистить кеш файловой системы и локальную историю
Очистить загруженные общие индексы

Затем сделать недействительным и перезапустить

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

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

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

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

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

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

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

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

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

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

повторно-импорт-maven -> закрыть-intellij -> удалить все -.idea-folder -> повторно открыть-проект -> build -> build-project / build-module-'ваш родительский модуль'

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

Возможно, вы работаете во внутренней сети компании.

Если это так, чтобы загрузить или добавить внешние зависимости Maven, settings.xml файл под user/<username>/.m2 папка может потребоваться обновить.

Обратитесь к администратору, чтобы предоставить право settings.xml файл, а затем вставьте его в вас .m2 папка.

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

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

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

Другие вопросы по тегам