Платформа: 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 следующим образом.
mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar
Maven точно установил файл jar в мой локальный репозиторий.
Затем я перешел в IntelliJ Settings = > Maven = > Репозиторий и обновил локальный репозиторий (чтобы 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 подбирает и распознает импорт логгера в файле maven mom. Однако для всего импорта hunnysoft он сообщает: "Не удается разрешить символ" ByteString/Field/FieldBody ", BUT Build = > Compile" StackOverflowQuestion.java "скомпилирует все правильно, а созданный для этого класса unit test работает отлично ( хотя намерения также указывают на вызов create() как проблемной области.)
Итак, где-то IntelliJ игнорирует файл jmime.jar для подсистемы намерения. Я запутался, потому что зависимость log4j работает нормально, и все компилируется и работает нормально. F12 ( "Перейти к декларации" ) работает с импортом Logger, но ломает все импорт jmime.
О, еще одна вещь, если я перейду к представлению "Пакеты" в окне "Проекты", появится пакет "com.hunnysoft.jmime", и я могу увидеть ВСЕ классы, которые я импортировал в фрагменте кода выше "Библиотека". Удаление вышеуказанной зависимости из файла pom.xml заставляет этот пакет исчезать и компиляция прерывается.
Похоже, что путь класса проверки нарушен, но, похоже, для этого параметра настройки в настройках = > Намерения | Области компилятора (не то, что я ожидал каких-либо таких настроек, я считаю, что IDEA уже должен знать правильный путь к классам, основанный на файле pom и JDK).
В качестве заключительного эксперимента я создал совершенно новый стандартный прикладной проект J2SE (без использования maven) и добавил файл jmime.jar непосредственно в проект как одну из его библиотек. Я столкнулся с такими же проблемами, как описано выше в этом новом проекте.
Вот файл MANIFEST.MF из jmime файла jar.
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.
Я не вижу ничего необычного в этом файле jar.
Мое лучшее предположение заключается в том, что, возможно, проблема может быть проблемой отсутствия проблем. Но AFAIK jmime должен быть самодостаточным (JarAnalyzer ничего не придумает, но я не уверен, что это произойдет, если отсутствует байт зависимости).
Итак, у кого-нибудь есть IDEA?
Прежде всего, вы должны попробовать File | Invalidate Caches
, и если это не поможет, удалите системный каталог IDEA. Затем повторно импортируйте проект Maven и посмотрите, помогает ли он.
В некоторых странных случаях скомпилированные классы могут сообщать о неправильной информации и путать IDEA. Убедитесь, что классы из этой банки сообщают правильные имена, используя javap.
Следующий трюк разрешил эту проблему для меня:
Моя идея - 12.0.4
Для пользователей Gradle:
Возможно, вам потребуется синхронизировать проект с вашим файлом build.gradle
.
Вы можете щелкнуть правой кнопкой мыши по файлу Gradle на панели "Проект", чтобы сделать это, , но, который, кажется, ничего не сделал для меня (я подозреваю, что ошибка в моей версии). Вы узнаете, если это произойдет, потому что он не будет запускать какие-либо задачи IntelliJ, которые вы будете ждать. Вместо этого откройте панель инструментов Gradle, затем нажмите кнопку "Синхронизировать (обновить)". Это сработало для меня, когда недействительность кэша и перезапуск не выполнялись.
Мое собственное обстоятельство: я использовал проект Scala с Gradle и должен был это сделать.
View > Tool Windows > Gradle
Один дополнительный шаг, когда я сделал File → Invalidate Caches и перезапустил среду IDE, откройте проект. Он поднял тост-бокс в правом верхнем углу, спрашивая меня, нужно ли включить авто-импорт и решить эту проблему.
Ни одно из вышеперечисленных решений не работало для меня. Что делалось с удалением файла main.iml вручную, и это неожиданно сработало.
Еще одна вещь, которую нужно проверить: убедитесь, что зависимости не дублируются. В моем случае я обнаружил, что модуль, демонстрирующий это поведение, был неправильно сконфигурирован следующим образом: он зависел от другого модуля и имел зависимость от банки, созданной этим другим модулем. Это означало для каждого символа, упомянутого в двух экземплярах, и было неоднозначным.
Это было упомянуто в другом ответе на этот же вопрос здесь, но это только исправляет это для меня. Я делаю все свои сборки в отдельном терминале, вне IntelliJ. Таким образом, кэш должен иметь правильные разрешения, установленные для приложения IntelliJ, чтобы их читать.
Запустите его из корневой папки проекта.
$ mvn -U idea:idea
Непоследовательные/дублирующие имена модулей в структуре проекта вызывали эту проблему для меня.
File -> Project Strucutre -> Modules
Это может произойти, если IntelliJ не закрывается должным образом и, следовательно, не может правильно сохранить имена переименованных модулей.
Опубликован ли опубликованный файл? Появляется проблема, первоначально затронутая v11/12 из-за "капитального ремонта компилятора" еще в 2013 году. Обсудив связанные с этим вопросы в Джире до конца 2014 года. http://youtrack.jetbrains.com/issue/IDEA-98425
Также на Jira IDEA-98425 отмечен фиксированный, но непроверенный (на v12.0.3). Ни одна из следующих обходной не помогла решить эту проблему "Невозможно устранить символ" с версией 13.1.1 в Windows
а. Удалить папку .IdealIC13 (тогда файл \Invalidate Caches/Restart)
б. Из окна Maven Projects,
b.1 mvn -U idea: idea → Выполнение этой цели maven предполагает перезагрузку зависимостей. Это работает, но с момента последнего FRI выполнение этой цели maven завершилось неудачно, поскольку он попытался перекомпилировать проект (конечно, он терпит неудачу как "Невозможно разрешить символы", что я пытаюсь исправить, выполнив эту команду в первую очередь) mvn -version - показывает версию maven, на которую ссылается 3.2.5, и что она работает
b.2 Просто щелкните проект правой кнопкой мыши и Reimport
b.3 Файл \ Недействительный кеш/перезапуск
с. Пробовал оба параметра Включить и отключить этот параметр: Файл → Настройки → Maven → Импорт → "Использовать maven3 для импорта проекта"
д. Настройки \Maven\Multiproject build fail policy = Fail at end (вместо Default)
Ничего не работает. Что происходит с поддержкой IntelliJ на Maven.
https://youtrack.jetbrains.com/issue/IDEA-99302
Из истории выпуска JetBeans https://www.jetbrains.com/company/history.jsp
IntelliJ v14 NOV 2014
IntelliJ v13 DEC 2013
Я бы предположил, что v12 зафиксирован (хотя непроверенный) будет включен в последующие выпуски. Любой, у кого есть аналогичные проблемы с версией IntelliJ? Пожалуйста, поделитесь своим опытом. Поддержка IntelliJ maven кажется сломанной.
У меня была эта проблема, и она просто не исчезла. В итоге я уничтожил каталог конфигурации IntelliJ в ~
и перестроил мой проект IntelliJ с нуля. (Это заняло всего около 15 минут, по сравнению с тратой часа на то, чтобы решить проблемы с кэшированными файлами и т.д.)
Обратите внимание, что я предполагаю, что первоначальная проблема была вызвана чем-то вроде javathings.blogspot.com/2009/11/too-many-open-files-in-intellij-idea.html
(NB: по состоянию на 2018 г. эта ссылка мертва, но у архиватора есть копия страницы, когда этот ответ был впервые написан -ed.) или проблема с дисковым пространством/памятью, вызывающая сбой Java. Кажется, IntelliJ просто испортился.
Ни один из других ответов не работал для меня. Мой импорт не был разрешен, потому что IntelliJ указал на неправильный файл.m2.
IntelliJ Версия: IntelliJ Idea 2018.1.5
Мое местоположение для каталога .m2 указывалось на неправильный путь. Все, что я сделал, чтобы исправить, это перевести точку IntelliJ вправо.m2 и обновить ее.
Сначала перейдите к: File-> Настройки-> Сборка, выполнение, Deployment-> Сборка Tools-> Maven
Мне пришлось изменить файл настроек пользователя: и локальный репозиторий: в правильное расположение моего каталога.m2.
После этого перейдите к: File-> Настройки-> Сборка, выполнение, Deployment-> Сборка Tools-> Maven-> Репозитории
и нажмите кнопку "Обновить".
Иногда я просто открываю структуру проекта и выбираю проект, затем выбирает версию SDK.
Реимпорт проекта работал у меня. Щелкните правой кнопкой мыши по проекту → Maven → Reimport
когда я сделал File → Invalidate Caches и перезапустил среду IDE, откройте проект. Он показал диалог в правом верхнем углу "обнаруженных изменений Maven" и дал возможность импортировать и активировать авто-импорт. Даже после импорта проекта у меня была та же проблема. Вышеупомянутый шаг решил проблему.
После отмены моего кэша и перезапуска; и подтверждение настроек моего maven было в порядке, я все еще видел "Не могу разрешить символ" для модуля, который я определенно установил как зависимость. Оказывается, я сделал это неправильно.
Вы можете проверить, щелкнув правой кнопкой мыши на своем модуле и выбрав "Открыть параметры модуля". Перейдите на вкладку зависимостей и убедитесь, что для области разрешаемой зависимости задано значение Скомпилировать.
Для другой альтернативы.
У меня возникла и эта проблема, когда я использовал JDK7_07. Здесь я пробовал все ответы (кроме удаления системного каталога IDEA). Но у меня все еще была проблема. Так что я сделал это:
Установите новейший JDK (это JDK7_45) и установите Intellij JDK на новый, и он работает.
Если ваш проект maven является многомодульным проектом, проверьте, игнорируются ли некоторые из модулей с помощью intellij.
gs-multi-module
на следующем изображении).
Unignore Projects
.
Затем подождите, пока intellij завершит индексирование, после чего он будет работать.
В моем случае, я пытаюсь открыть проект загрузки весны от IntellijIdea, получил ту же проблему, что и неспособность импортировать все файлы, связанные с spring.
Затем я сделал:
Файл → Закрыть проект → Импорт проекта → Импорт из внешней модели → Выбрать Gradle → Далее → Выбрать проект из местоположения файла → Готово
Теперь все работает нормально, как ожидалось.
Я видел много ответов здесь, но я наконец нашел это решение. Он может использоваться для кого-то вроде меня.
иногда, когда вы создаете пакет, например com.mydomain.something, структура каталогов не создается, и вам остается одна папка с именем "com.mydomain.something", в этом случае вам следует создать структуру каталогов, например
com
|_mydomain
|_something
Удалите: iml файл, найденный в java и тестовых папках внутри проекта. аннулировать и перезапустить.
Он попросит меня удалить проекты. Положите Да. Ошибка исчезнет.
Предлагаемые решения не помогли. Мне пришлось выполнить unignore несколько проектов, щелкнув правой кнопкой мыши по проекту pom = > maven = > unignore.
Тогда после a
mvn clean install -T 6 -DskipTests
в консоли, IntelliJ снова был счастлив. Не знаю, как проекты стали игнорировать...
Ни одно из вышеперечисленных решений не разрешило это для меня. У меня была такая же проблема, когда код был скомпонован, но IntelliJ показал, что он не смог найти импорт. Несмотря на то, что IntelliJ предложил импорт в первую очередь от завершения кода.
Мое решение состояло в том, чтобы переместить все в пакет по умолчанию, удалить пакет com.foo.bar
, затем создать его снова и переместить все обратно.
В моем случае удаляется только buildDir.
В этом случае File | Invalidate Caches
не работает.
Когда я делаю Build | Make Project
до File | Invalidate Caches
, все работает нормально.
Моя структура проекта:
src -> main -> scala -> mypackages
Что работало:
Щелкните правой кнопкой мыши по папке scala
и нажмите "Отметить каталог как источник корня".
Для пользователей Intellij Idea эти команды еще до импорта проекта могут помочь:
./gradlew build . /gradlew idea
Да, похоже, что вам нужно создавать библиотеки, содержащие нужные JAR, и добавлять их в качестве зависимости в вашем модуле.
проверьте импорт проектов Maven автоматически, исправил мою проблему. Я провел два часа, выясняя, где я делаю неправильно. Наконец удалось это исправить.
Для MAVEN,
Я пробовал все вышеперечисленные методы, но не смог найти решение,
Ниже приведены шаги, которые я пробовал (сочетание некоторых решений),
mvn clean
Идея mvn: чистая
(Убедитесь, что у вас нет дополнительных файлов.iml, кроме файлов проекта/подпроектов.iml)
Если все мои файлы pom.xml настроены правильно, и у меня все еще есть проблемы с Maven в IntelliJ, я делаю следующие шаги
PS Я потратил много времени, чтобы понять (шаг 3), что процесс демона IntelliJ java, который обрабатывает обновление индекса maven, делает что-то неправильно, и мне просто нужно сделать IntelliJ, чтобы начать его с нуля. Проблема была решена без перезапуска самого IntelliJ.
Не удалось импортировать стандартные java-библиотеки, такие как java.beans. *
Исправлено это на моей системе Redhat 7, указав ее на правильный путь JRE.
File-> ProjectStructure → SDKs-> 1.8 Изменен "домашний путь JDK:" на /usr/lib/jvm/java-1.8.0-openjdk-1.8.0161-2.b14.el7.x86_64 вместо /usr/lib/jvm/java-1.8.0-openjdk-1.8.0161-2.b14.el7_4.x86_64
Первый путь к jdk (с разницей в пути 4) вряд ли имел в этом что-то. В нем отсутствовало много java-библиотек.
Перейдите в File-> Структура проекта → SDK и проверьте правильность пути к файлу SDK.
Что помогло мне решить эту проблему:
У меня было другое отделение, я перешел на эту ветку и построил проект с mvn clean install. Все было в порядке, затем снова переключилось на мастера и снова построило проект, и ошибки исчезли. Недействительные кеши и перезагрузка не помогли мне.
Для меня работала "Mark as directory source root" - каталог, в котором был отмечен красный класс, после чего красная метка исчезла. Похоже, что по какой-то причине это было немаркировано.
"Файл → Недействительный кэш и перезагрузка" разрешит все зависимости.
Если ничего не получается, щелкните правой кнопкой мыши на исходном каталоге, пометьте каталог как "Source Directory", а затем щелкните правой кнопкой мыши по каталогу проекта и maven → re-import.
это решило мою проблему.
Внесите изменения в файл app.gradle(просто нажмите там место), затем нажмите "Синхронизировать", затем "Очистить". Работает каждый раз:)
mvn idea:idea
работал у меня. Нашел здесь. Прошло более часа, надеюсь, что это поможет кому-то
Для Idea 2017.1 + Gradle плагин как-то глючит. Пробовал все синхронизировать, invalidate + restart, ничего не работало. Согласно https://github.com/gradle/gradle/issues/2315, это сработало для меня: 1. Закрыть идею 2. Введите идею gradle в командной строке (должно сгенерировать 3 файла:.iml,.ipr,.iws) 3. Запустите идею и откройте созданный файл .ipr, это должно импортировать проект с нуля, с жестко связанными зависимостями в этих трех файлах
Это решило мою проблему: щелкните правой кнопкой мыши файл jar в дереве файлов в AS и выберите "Добавить как библиотеку..."
РЕДАКТИРОВАТЬ: вы можете сделать "Файл" → "Недействительные кеши..." и выбрать опцию "Invalidate and Restart", чтобы исправить это.
У меня была аналогичная проблема, когда я переключился на новый компьютер.
Я скопировал все файлы IDEA (даже связанные с ними% APPDATA% -folders), но затем сборка Maven была успешно выполнена, но при ее создании IDEA не обнаружила никаких классов из зависимостей.
Решение: я начал с нового и чистого профиля IDEA, удалив папки из% APPDATA% -folders
В моем случае эта проблема возникла после того, как я проверил большую реструктуризацию файлов в моем проекте maven. Во время проверки у меня были некоторые из моих собственных непроверенных изменений, которые все еще активны. Насколько мне известно, изменения не были изменены ни в одном из файлов, которые были реструктурированы.
Недействительность кэша и перезапуск не помогли мне. Что было сделано:
Или, может быть, файл, который вы импортируете, слишком велик. Это мой случай, когда я изменяю свойство Intellij: iead.max.intellisen.filesize(путь ${idea dir}/bin/idea.properties) к большему значение, например 25000, и перезапустить среду IDE, проблема исчезла. Надеюсь, это поможет.
Недействительный кэш работал у меня, но после запуска приложения была та же ошибка.
Итак, я попробовал (Intellij):
1 - Строка меню - Рефакторинг | Создать | Выполнить | инструменты - нажмите Создать, затем Перестроить проект
2 - MVN clean
3 - Щелкните правой кнопкой мыши по проекту > Maven > Создать источники и папку обновлений
Надеюсь, это сработает для вас.
Спасибо
Если проект maven, то просто перейдите в настройки → инструменты сборки → maven → импорт. установите флажок "импортировать проект maven автоматически". решит проблему.