Платформа: IntelliJ Community Edition 10.0.3
SDK: jdk1.6.0_21
ОС: Windows 7
Таким образом, у меня есть странная ситуация с IntelliJ, которая поставила меня в тупик. Я настраиваю проект Maven и добавляю log4j в качестве зависимости в файл pom.xml. Инспекции IDEA проходят нормально, и все мои модульные тесты компилируются и запускаются.
Затем я добавил библиотеку hunnysoft jmime в мой локальный репозиторий maven с помощью mvn install: install-file следующим образом.
mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar
Maven прекрасно установил файл jar в мой локальный репозиторий.
Затем я зашел в настройки IntelliJ's Settings => Maven => Repository Services и обновил мой локальный репозиторий (чтобы IntelliJ переиндексировал содержимое репозитория).
Наконец, я добавил следующую зависимость в мой файл pom.xml (чуть выше зависимости log4j).
<dependency>
<groupId>jmime</groupId>
<artifactId>jmime</artifactId>
<version>3.1.1e</version>
</dependency>
Теперь я создаю новый класс следующим образом:
package com.stackoverflow.question;
import org.apache.log4j.Logger;
import com.hunnysoft.jmime.ByteString;
import com.hunnysoft.jmime.Field;
import com.hunnysoft.jmime.FieldBody;
public class StackOverflowQuestion {
public Field create(String name, String text) {
Logger.getLogger(getClass()).debug("create entered");
FieldBody body = new FieldBody();
body.setText(new ByteString(text));
Field field = new Field();
field.setFieldName(name);
field.setFieldBody(body);
return field;
}
}
Теперь для странности. Механизм намерений IntelliJ подхватывает и распознает импорт Logger в файле maven pom. Однако для всех импортов hunnysoft он сообщает: «Не удается разрешить символ« ByteString / Field / FieldBody »», НО Build => Compile «StackOverflowQuestion.java» компилирует все правильно, и созданный мной модульный тест для этого класса работает нормально (хотя намерения помечают вызов create () как проблемную область).
Так или иначе, IntelliJ игнорирует файл jmime.jar для подсистемы намерений. Я запутался, потому что зависимость log4j работает нормально, и все компилируется и работает нормально. F12 («Перейти к декларации») работает с импортом Logger, но разбивает на все импорты jmime.
О, еще одна вещь, если я перехожу к представлению «Пакеты» в окне «Проекты», появляется пакет «com.hunnysoft.jmime», и я вижу ВСЕ классы, которые я импортировал в приведенном выше фрагменте кода в разделе «Библиотеки». , Удаление вышеуказанной зависимости из файла pom.xml приводит к исчезновению этого пакета и разрыву компиляции.
Похоже, что путь к классу проверки нарушен, но, похоже, нигде в настройках этого параметра нет настроек => Намерения | Области компиляции (не то чтобы я ожидал каких-либо таких настроек, я считаю, что IDEA уже должна знать правильный путь к классу на основе файла pom и JDK).
В качестве заключительного эксперимента я создал совершенно новый стандартный проект приложения J2SE (без использования maven) и добавил файл jmime.jar непосредственно в проект в качестве одной из его библиотек. Я столкнулся с точно такими же проблемами, как описано выше в этом новом проекте.
Вот файл MANIFEST.MF из файла jar jmime.
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.4
Created-By: 10.0-b23 (Sun Microsystems Inc.)
Name: com/hunnysoft/jmime/
Sealed: true
Specification-Title: Hunny JMIME
Specification-Version: 3.1.1
Specification-Vendor: Hunny Software, Inc.
Implementation-Title: com.hunnysoft.jmime
Implementation-Version: 3.1.1E
Implementation-Vendor: Hunny Software, Inc.
Я не вижу ничего необычного в этом фляге.
Мое лучшее предположение состоит в том, что, возможно, проблема может заключаться в отсутствующей зависимости. Но AFAIK jmime должен быть автономным (JarAnalyzer ничего не предлагает, но я не уверен, что так будет, если отсутствует jar-файл зависимости).
Итак, у кого-нибудь есть идеи?
источник
Ответы:
Прежде всего вы должны попробовать,
File | Invalidate Caches
и если это не поможет, удалите системный каталог IDEA . Затем повторно импортируйте проект Maven и посмотрите, поможет ли это.В некоторых странных случаях скомпилированные классы могут сообщать неверную информацию и вводить в заблуждение IDEA. Убедитесь, что классы из этого jar сообщают правильные имена, используя javap .
источник
Следующий трюк решил эту проблему для меня:
Моя идея версия 12.0.4
источник
View -> Tool Windows -> Maven Projects
затем нажмите на значок стрелки цикла.Ни одно из приведенных выше решений не помогло мне. То, что делало, удаляло файл main.iml вручную, и это внезапно работало.
источник
Для пользователей Gradle:
Возможно, вам придется синхронизировать ваш проект с вашим
build.gradle
файлом.Вы можете щелкнуть правой кнопкой мыши на своем файле Gradle в области Project, чтобы сделать это, но это, похоже, ничего не сделало для меня (я подозреваю, что ошибка в моей версии). Вы будете знать, если это произойдет, потому что это не будет запускать любые задачи IntelliJ, которые вы будете ждать. Вместо этого откройте панель инструментов Gradle , затем нажмите кнопку синхронизации (обновления). Это сработало для меня, когда аннулирование кэша и перезапуск не сделали.
Мои собственные обстоятельства: я использовал проект Scala с Gradle и должен был это сделать.
источник
View > Tool Windows > Gradle
mavenCentral() could not be resolved
пока я не добавил обратно конфигурации jUnit (я перенес весь проект в Gradle, создав новый проект Gradle, а затем скопировал все исходные файлы).Это было упомянуто в другом ответе на этот же вопрос здесь , но это одно исправляет это для меня. Я делаю все свои сборки в отдельном терминале вне IntelliJ. Таким образом, кэш должен иметь надлежащие права доступа для приложения IntelliJ для их чтения.
Запустите его из корневой папки проекта.
источник
Еще один дополнительный шаг, когда я сделал File -> Invalidate Caches и перезапустил IDE, открыл проект. В верхнем правом углу появилась всплывающая подсказка с вопросом, нужно ли включить автоматический импорт, и это решило проблему.
источник
Еще одна вещь, чтобы проверить: убедитесь, что зависимости не дублируются. В моем случае я обнаружил, что модуль, демонстрирующий такое поведение, был неправильно настроен следующим образом: он зависел от другого модуля и зависел от jar, созданного этим другим модулем. Это означало для каждого символа, на который есть ссылки в двух экземплярах, и было неоднозначным.
источник
Непоследовательные / повторяющиеся имена модулей в структуре проекта вызывали эту проблему для меня.
File -> Project Strucutre -> Modules
Это может произойти, когда IntelliJ не выключается должным образом и, следовательно, не может правильно сохранить переименованные имена модулей.
источник
Было ли опубликовано исправление? Появляется проблема, изначально затронутая v11 / 12 из-за «пересмотра компилятора» еще в 2013 году. С обсуждением связанных проблем в Jira до конца 2014 года. Http://youtrack.jetbrains.com/issue/IDEA-98425
Также на Jira IDEA-98425 был отмечен как исправленный, но не проверенный (на v12.0.3). Ни один из следующих обходным помогли решить эту проблему «Невозможно не Resolve Символ» вопрос с версии 13.1.1 на ОС Windows
а. Удалите папку .IdealIC13 (затем Файл \ Недействительные кэши / Перезапуск)
б. Из окна Maven Projects ,
b.1 mvn -U idea: idea -〉 Выполнение этой maven-цели предполагает перезагрузку зависимостей. Это работает раньше, но с момента последнего FRI выполнение этой maven-цели не удалось, так как он попытался перекомпилировать проект (конечно, он завершается с ошибкой «Невозможно разрешить символы», вот что я пытаюсь исправить, выполнив эту команду в первую очередь) mvn -version - показывает версию maven со ссылкой на 3.2.5 и то, что она работает
б.2 Просто щелкните правой кнопкой мыши проект и повторно импортируйте
b.3 File \ Invalidate Caches / Restart
с. Пробовал включить и отключить этот параметр: Файл -> Настройки -> Maven -> Импорт -> «Использовать maven3 для импорта проекта»
д. Настройки \ Maven \ Политика сбоя многопроектной сборки = Ошибка в конце (вместо значения по умолчанию)
Ничего не работает Что происходит с поддержкой IntelliJ на Maven.
https://youtrack.jetbrains.com/issue/IDEA-99302
Из истории выпуска JetBeans, https://www.jetbrains.com/company/history.jsp
IntelliJ v14 ноября 2014
IntelliJ v13 DEC 2013
Я предполагаю, что исправленная версия 12 (хотя и не проверенная ) будет включена в последующие выпуски. У кого-то есть похожие проблемы с какой версией IntelliJ? Пожалуйста, поделитесь своим опытом. Поддержка IntelliJ maven кажется сломанной.
источник
Структура моего проекта:
Что сработало:
Щелкните правой кнопкой мыши
scala
папку и выберите «Пометить каталог как корень источника».источник
Ни один из других ответчиков не работал на меня. Мой импорт не был решен, потому что IntelliJ указал на неправильный файл .m2.
Версия IntelliJ: IntelliJ Idea 2018.1.5
Мое местоположение для каталога .m2 было указано неверный путь. Все, что я сделал, чтобы это исправить, это переместил IntelliJ в правильный каталог .m2 и обновил его.
Сначала перейдите в: Файл-> Настройки-> Сборка, Выполнение, Развертывание-> Инструменты сборки-> Maven
Мне пришлось изменить файл настроек пользователя: и локальный репозиторий: на правильное расположение моего каталога .m2.
После этого перейдите к: Файл-> Настройки-> Сборка, Выполнение, Развертывание-> Инструменты сборки-> Maven-> Хранилища
и нажмите кнопку Обновить.
источник
Для другой альтернативы.
Я получил эту проблему также, когда я использовал JDK7_07. Я попробовал все ответы здесь (кроме удаления системного каталога IDEA). Но у меня все еще есть проблема. Итак, что я сделал это:
Установите новейший JDK (это был JDK7_45) и установите новый IntelliJ's JDK, и он работает.
источник
У меня просто была эта проблема, и она просто не ушла бы. В конце концов я удалил каталог конфигурации IntelliJ
~
и перестроил свой проект IntelliJ с нуля. (В итоге это заняло около 15 минут, по сравнению с тем, как потратить час на решение проблем с кэшированными файлами и т. Д.)Обратите внимание, что я предполагаю, что первоначальная проблема была вызвана чем-то вроде
javathings.blogspot.com/2009/11/too-many-open-files-in-intellij-idea.html
(примечание: по состоянию на 2018 г. эта ссылка устарела, но на сайте archive.org имеется копия страницы, когда этот ответ был впервые написан, -). проблема с дисковым пространством / памятью, вызывающая сбой Java. Кажется, что IntelliJ просто испортился.источник
Если ваш maven-проект является многомодульным, проверьте, не были ли некоторые модули игнорированы intellij.
gs-multi-module
на следующем рисунке).Unignore Projects
.Затем подождите, пока intellij завершит индексацию, после чего она заработает.
источник
Да, звучит так, будто вам нужно создать библиотеки, содержащие нужные вам JAR-файлы, и добавить их в качестве зависимости в ваш модуль.
источник
После аннулирования моего кэша и перезапуска; и подтверждая, что мои настройки maven были в порядке, я все еще видел «Не удается разрешить символ» для модуля, который я определенно установил как зависимость. Оказывается, я установил неправильную область.
Вы можете проверить, щелкнув правой кнопкой мыши по вашему модулю и выбрав Открыть настройки модуля. Перейдите на вкладку зависимостей и убедитесь, что для области вашей неразрешимой зависимости задано значение Компилировать.
источник
Повторный импорт проекта работал для меня. Щелкните правой кнопкой мыши на Project -> Maven -> Reimport
когда я сделал File -> Invalidate Caches и перезапустил IDE, открыл проект. Он показал диалоговое окно в правом верхнем углу «Обнаружены изменения Maven» и дал возможность импортировать и включить автоматический импорт. Даже после импорта проекта у меня возникла та же проблема. Вышеуказанный шаг решил проблему.
источник
Иногда я просто открываю структуру проекта и щелкаю проект, затем выбираю версию SDK .
источник
В моем случае, я пытаюсь открыть проект весенней загрузки из IntellijIdea, возникла та же проблема, что и невозможно импортировать все файлы, связанные с пружиной.
Тогда я сделал:
Теперь все работает нормально, как и ожидалось.
Я видел много ответов здесь, но я наконец нашел это решение. Это может использовать для кого-то, как я.
источник
В моем случае удаляется только buildDir. В этом случае
File | Invalidate Caches
не работает.Когда я делаю
Build | Make Project
раньшеFile | Invalidate Caches
, все работает отлично.источник
источник
Ни одно из вышеперечисленных решений не решило это для меня. У меня была та же проблема, когда код компилировался нормально, но IntelliJ показал, что он не может найти импорт. Несмотря на то, что IntelliJ предложил импорт в первую очередь после завершения кода.
Мое решение состояло в том, чтобы переместить все в пакет по умолчанию, удалить
com.foo.bar
пакет, затем создать его снова и переместить все обратно.источник
Предлагаемые решения не сработали. Мне пришлось игнорировать несколько проектов, щелкнув правой кнопкой мыши на проекте pom => maven => unignore.
Потом после
в консоли IntelliJ снова был счастлив. Понятия не имею, как проекты стали игнорироваться ...
источник
mvn idea:idea
работал на меня. Нашел это здесь . Потратил больше часа, надеюсь, это кому-нибудь поможетисточник
Удалите файл: iml, найденный в java и тестовых папках внутри проекта, и сделайте его недействительным и перезапустите.
Он спросит, могу ли я удалить проекты. Поставь да. Ошибка исчезнет.
источник
Для меня работало «Пометить как корневой каталог источника» каталог, в котором находился красный помеченный класс, после чего красная метка исчезла. Кажется, что по какой-то причине это было без опознавательных знаков.
источник
Для Gradle проектов:
<problematic-project-root>/.idea
каталог<problematic-project-root>/.gradle
каталог.iml
файлы в<problematic-project-root>
DEL /S /Q *.iml
find . | grep -e .iml$ | xargs rm
источник
если проект maven, то просто зайдите в настройки -> инструменты сборки -> maven -> импорт. установите флажок «Импортировать проект maven автоматически». решит проблему.
источник
У меня работали недействительные кэши, но после запуска приложения возникла та же ошибка.
Итак, я попробовал ( Intellij ):
1 - Строка меню - Refactor | Построить | Запустить | Инструменты - нажмите Build, затем Rebuild Project
2 - МВН чистый
3 - Щелкните правой кнопкой мыши по проекту> Maven> Создать источники и папку обновления
Надеюсь, что это работает для вас.
Спасибо
источник
Или, возможно, импортируемый вами файл слишком велик. Это мой случай, когда я изменяю свойство Intellij: iead.max.intellisen.filesize (путь равен $ {idea dir} /bin/idea.properties) на большее значение, например 25000, и перезапустите IDE, проблема исчезла. Надеюсь это поможет.
источник