Пакет Maven работает, но сборку Intellij не удается

У меня есть проект JDK 1.7 с зависимостью maven с локальной банкой в ​​моем maven-репо.

Я не могу построить проект с помощью Intellij, с ошибками, которые невозможно найти в символе (символ представляет собой класс, импортирующий пакеты из локальной банки)

Но я могу успешно построить проект, используя 'mvn package'.

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

  • Недействительный кеш
  • 'mvn clean install' локальная jar dependecy
  • Отмечено на "автозагрузку снимков" в конфигурации Intellij maven.
  • Отправлено maven в Intellij
  • Syncornized

Эта ошибка произошла с моими парами раз, но обычно закрытие Intellij и/или выполнение "mvn clean install" сделали трюк.

Пожалуйста, помогите.

Ответ 1

Я обнаружил, что мой файл.iml и pom конфликтовали и вызывали проблему.

Ответ 2

Я знаю, что это поздно, но выполнение mvn idea:idea решает проблему.

Ответ 3

Попробуйте удалить все .iml и ваш POM. Затем скопируйте и вставьте свой POM в свой проект и повторно откройте и повторно импортируйте его.

Ответ 4

Добавление еще нескольких советов, поскольку это первое, что появилось в поиске, когда у меня были подобные проблемы (сборка проекта в mvn, а не в IntelliJ), если это может помочь кому-то другому.

Когда у меня было это, это было другое решение для Windows и Mac.

На Mac я зашел в ItellijIDEA/Preferences/Build, Execution, Deployment/Build Tools/Maven/Maven Home Directory и установил его для использования моего отдельно установленного Maven, а не в комплекте Maven. Все проблемы с компоновкой ушли.

В Windows я видел исключения в идее .log, связанные с SSL, и у моего дерева проектов была только Java в ветке внешних библиотек. От взгляда на другие сайты кажется, что IntelliJ использует свой собственный JDK вместо системного (хотя в моем случае у меня уже была установлена ​​такая же версия JDK). Моя система JDK имеет сертификаты, установленные в хранилище ключей для корпоративного сервера Nexus, которого не было у частного JDK IntelliJ, поэтому были исключены исключения, когда он пытался получить файлы из Nexus. Для этого решение заключалось в том, чтобы выйти из IntelliJ, установить переменную среды, называемую IDEA_JDK, чтобы указать на JDK, который я уже установил, который имел соответствующие сертификаты и перезапустил IntelliJ. Все проблемы с компоновкой ушли.

Ответ 5

Maven ReImport работал для меня, как показано ниже...

enter image description here

Ответ 6

IDE использует свою собственную в комплекте копию Maven при выполнении сборки. Если maven на терминале отличается от IDE, вы хотите, чтобы они были одинаковыми.

GOTO (на Mac) - IntelliJ Idea → Настройки → Сборка, выполнение, развертывание → Инструменты сборки → Maven. Укажите путь для вашего домашнего каталога Maven Чтобы найти путь для Maven, который вы используете из терминала, введите команду mvn -version и это должно распечатать кучу деталей, включая путь dir. Поместите это в домашний каталог Maven.

Чтобы быть в безопасности, вы также можете сделать то же самое для местоположения JDK

==== Некоторые другие вещи, которые могут вызывать такие проблемы ===

Если вы делаете mvn-пакет или mvn clean install builds, тогда он должен что-то делать с кэшами IDE. Среди прочего, этот обычно помогает с такими ошибками →

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

Ответ 7

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

Ответ 8

В моем случае мой iml не был синхронизирован, поэтому я удалил iml для определенного модуля, а затем в опции maven выберите unignore project, чтобы воссоздать iml

Ответ 9

"символ не может быть найден" означает, что intellij не может разрешить "зависимость". Таким образом, вы можете принудительно "Анализ зависимостей", нажав "Анализ" → "Анализ зависимостей", затем выберите "Область анализа"

Ответ 10

из командной строки выполните команду commnad: mvn idea:idea и щелкните правой кнопкой мыши проект → из меню повторно импортируйте зависимости

Ответ 11

У меня была та же проблема. Я изменил версию maven с 3.0.5 до 3.0.4 в настройках Idea, и теперь все работает отлично. Не знаю, почему это помогает мне.

Ответ 12

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

Недавно мы начали использовать частный репозиторий Maven и всегда делаем mvn -s settings.xml при вызове cmdline Maven. IntelliJ, конечно, не знает о частном репо, поэтому ему нужна небольшая помощь.

Перейдите в Настройки → Сборка, выполнение, развертывание → Инструменты сборки → Maven и переопределите параметр "Пользовательские настройки".

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

Ответ 13

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

Закрытие и воссоздание нового проекта решило его.

Ответ 14

Я закрыл проект и снова импортировал его, щелкнув на корневом pom (не только на папку, но и на сам файл pom).

Ответ 15

Я попробовал все выше без радости. Однако я сделал одну вещь, которая наконец заставила его работать:

Я пошел в C:\Users\.IntellijJIdea2018.2 и просто удалил всю папку.

Удаляет все настройки и кеш для IntelliJ. Мне пришлось заново импортировать мой проект, но простое удаление и повторный импорт раньше не работали, но в конце концов он снова заработал.

Ответ 16

Если вы используете gradle, попробуйте команду ниже. Это решило мою проблему

gradle cleanIdea idea

Ответ 17

Эта простая процедура занимает около 1 минуты без риска.

  • Закрыть IntelliJ
  • Удалите ТОЛЬКО специальные файлы IntelliJ, такие как.idea/*, *.iml,.settings и т.д. Предлагалось также удалить POM, но это не обязательно, IMHO.
  • Затем заново создайте проект в IntelliJ, используя: Файл > Создать> Проект из существующих источников>, следуя инструкциям. Будьте внимательны, НЕ импортируйте несколько профилей или (одни и те же проекты).

Ответ 18

У меня такая же проблема. Идти к:

Файл → Структура проекта → Модуль. Выберите свой модуль и на вкладке " Зависимости " убедитесь, что все maven-зависимости добавлены.

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

Ответ 19

Удалите папку .idea и закройте IDE

снова откройте IDE и импортируйте проект, который выполнит новый импорт, потому что папка .IDEA была удалена нами ранее

Проверьте модуль внешних библиотек и, если он не заполнен необходимыми зависимостями, проверьте, правильно ли указано местоположение maven settings.xml в среде IDE.

Ответ 20

Существует также возможность, которая не была упомянута. Если вы импортируете библиотеку из com.sun.*. Это также вызовет эту проблему.

Программы работают при запуске в ide, поскольку все эти классы в com.sun.* находятся в каталоге jre/lib, он будет загружен при запуске. Но когда вы запускаете mvn package, эти библиотеки не будут доступны из-за ограничения oracle начиная с java 1.6 (эти библиотеки в некотором роде устарели). Чтобы решить эту проблему, вы можете добавить

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <compilerArguments>
                        <verbose />
                        <bootclasspath>C:/Program Files/Java/jdk1.8.0_161/jre/lib/rt.jar</bootclasspath>
                    </compilerArguments>
                </configuration>
            </plugin>
        </plugins>
    </build>

не забудьте заменить путь классного пользователя своим собственным путем rt.jar

Вы можете искать Access restriction: The type XXX is not accessible due to restriction on required library для более подробной информации.

Ответ 21

Если настроены ошибочные модули, выполните следующие действия:

  • Перейдите в Настройки проекта
  • Перейти на Модули
  • Удалить модули, которых там быть не должно