Ответ 1
Я обнаружил, что мой файл.iml и pom конфликтовали и вызывали проблему.
У меня есть проект JDK 1.7 с зависимостью maven с локальной банкой в моем maven-репо.
Я не могу построить проект с помощью Intellij, с ошибками, которые невозможно найти в символе (символ представляет собой класс, импортирующий пакеты из локальной банки)
Но я могу успешно построить проект, используя 'mvn package'.
Я потратил столько времени на поиск решений, что я уже сделал:
Эта ошибка произошла с моими парами раз, но обычно закрытие Intellij и/или выполнение "mvn clean install" сделали трюк.
Пожалуйста, помогите.
Я обнаружил, что мой файл.iml и pom конфликтовали и вызывали проблему.
Я знаю, что это поздно, но выполнение mvn idea:idea
решает проблему.
Попробуйте удалить все .iml и ваш POM. Затем скопируйте и вставьте свой POM в свой проект и повторно откройте и повторно импортируйте его.
Добавление еще нескольких советов, поскольку это первое, что появилось в поиске, когда у меня были подобные проблемы (сборка проекта в 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. Все проблемы с компоновкой ушли.
Maven ReImport работал для меня, как показано ниже...
IDE использует свою собственную в комплекте копию Maven при выполнении сборки. Если maven на терминале отличается от IDE, вы хотите, чтобы они были одинаковыми.
GOTO (на Mac) -
IntelliJ Idea → Настройки → Сборка, выполнение, развертывание → Инструменты сборки → Maven. Укажите путь для вашего домашнего каталога Maven
Чтобы найти путь для Maven, который вы используете из терминала, введите команду mvn -version
и это должно распечатать кучу деталей, включая путь dir. Поместите это в домашний каталог Maven.
Чтобы быть в безопасности, вы также можете сделать то же самое для местоположения JDK
==== Некоторые другие вещи, которые могут вызывать такие проблемы ===
Если вы делаете mvn-пакет или mvn clean install builds, тогда он должен что-то делать с кэшами IDE. Среди прочего, этот обычно помогает с такими ошибками →
Файл → Недействительные кеши
Я знаю, что я очень опаздываю на этот разговор, но просто хотел опубликовать его, если кто-то другой столкнется с этой проблемой. Другая причина, почему это происходит, состоит в том, что вы не имеете в виду правильный репозиторий. Intellij собирает вложенную версию фляги по умолчанию вместо одной из вашего собственного репозитория maven. Убедитесь, что подключенный репозиторий является правильным.
В моем случае мой iml не был синхронизирован, поэтому я удалил iml для определенного модуля, а затем в опции maven выберите unignore project, чтобы воссоздать iml
"символ не может быть найден" означает, что intellij не может разрешить "зависимость". Таким образом, вы можете принудительно "Анализ зависимостей", нажав "Анализ" → "Анализ зависимостей", затем выберите "Область анализа"
из командной строки выполните команду commnad: mvn idea:idea
и щелкните правой кнопкой мыши проект → из меню повторно импортируйте зависимости
У меня была та же проблема. Я изменил версию maven с 3.0.5 до 3.0.4 в настройках Idea, и теперь все работает отлично. Не знаю, почему это помогает мне.
Многие полезные советы в других ответах здесь, просто хочу добавить решение, которое сработало для моей проблемы.
Недавно мы начали использовать частный репозиторий Maven и всегда делаем mvn -s settings.xml
при вызове cmdline Maven. IntelliJ, конечно, не знает о частном репо, поэтому ему нужна небольшая помощь.
Перейдите в Настройки → Сборка, выполнение, развертывание → Инструменты сборки → Maven и переопределите параметр "Пользовательские настройки".
Я попытался сделать кеш недействительным, изменив Maven на установленную версию, и ничего не получилось.
Закрытие и воссоздание нового проекта решило его.
Я закрыл проект и снова импортировал его, щелкнув на корневом pom (не только на папку, но и на сам файл pom).
Я попробовал все выше без радости. Однако я сделал одну вещь, которая наконец заставила его работать:
Я пошел в C:\Users\.IntellijJIdea2018.2 и просто удалил всю папку.
Удаляет все настройки и кеш для IntelliJ. Мне пришлось заново импортировать мой проект, но простое удаление и повторный импорт раньше не работали, но в конце концов он снова заработал.
Если вы используете gradle, попробуйте команду ниже. Это решило мою проблему
gradle cleanIdea idea
Эта простая процедура занимает около 1 минуты без риска.
У меня такая же проблема. Идти к:
Файл → Структура проекта → Модуль. Выберите свой модуль и на вкладке " Зависимости " убедитесь, что все maven-зависимости добавлены.
Чтобы убедиться, что вас предупреждают о подобной проблеме в редакторе идей: переключитесь с "Вкладки зависимостей" на "Источники" и добавьте отметку вашего источника в качестве источника.
Удалите папку .idea и закройте IDE
снова откройте IDE и импортируйте проект, который выполнит новый импорт, потому что папка .IDEA была удалена нами ранее
Проверьте модуль внешних библиотек и, если он не заполнен необходимыми зависимостями, проверьте, правильно ли указано местоположение maven settings.xml в среде IDE.
Существует также возможность, которая не была упомянута. Если вы импортируете библиотеку из 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
для более подробной информации.
Если настроены ошибочные модули, выполните следующие действия: