При запуске теста JUnit, используя IntelliJ IDEA, я получаю
Как я могу это исправить?
- Использование SDK 1.7
- Уровень владения языком модуля составляет 1,7
Maven build работает отлично. (Вот почему я верю в это в проблеме конфигурации IDEA)
При запуске теста JUnit, используя IntelliJ IDEA, я получаю
Как я могу это исправить?
Maven build работает отлично. (Вот почему я верю в это в проблеме конфигурации IDEA)
Ответы:
Скорее всего, у вас неверные параметры компилятора, импортированные из Maven:
Также проверьте настройки байт-кода ( целевой ) версии проекта и модуля, указанные на скриншоте.
Другие места, где настроен уровень исходного языка:
Уровень языка Maven по умолчанию - 1,5 (5,0), вы увидите эту версию как уровень языка модуля на снимке экрана выше.
Это можно изменить, используя конфигурацию maven-compiler-plugin внутри pom.xml
:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
или
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
IntelliJ IDEA будет соблюдать этот параметр после повторного импорта проекта Maven в окне инструментов проектов Maven :
pom.xml
подключаемого модуля java-компилятора может указывать версию Java, которая будет переопределять этот параметр при следующем внесении изменений в файл pom.xml (если включено автоматическое повторное импортирование) или повторном импорте проекта вручную.
Аналогично обсужденному ниже для IntelliJ 13 и 14, но с дополнительным уровнем на панели «Настройки / Предпочтения»: « Настройки» > « Сборка», «Выполнение», «Развертывание» > « Компилятор» > « Компилятор Java» .
В IntelliJ 13 и 14 проверьте Настройки> Компилятор> Пользовательский интерфейс компилятора Java, чтобы убедиться, что вы не ориентируетесь на другую версию байт-кода в своем модуле.
В IntelliJ IDEA 14.1 «Целевая версия байт-кода» находится в другом месте.
Следующее изменение сработало для меня:
Файл> Настройки ...> Построение, выполнение, развертывание> Компилятор> Компилятор Java : измените целевую версию байт-кода с 1.5 на 1.8
Посмотрели ли вы конфигурацию сборки, должно быть так, если вы используете Maven 3 и JDK 7
<build>
<finalName>SpringApp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
...
</build>
Я столкнулся с этим, и исправлением было перейти в «Настройки проекта»> «Модули»> нажать на конкретный модуль> вкладка «Зависимости». Я заметил, что Module SDK все еще установлен на 1.6, я изменил его на 1.7, и он работал.
Измените файл настроек компилятора проекта по следующему пути и измените «target» на 1.7:
/project/.idea/compiler.xml
<bytecodeTargetLevel>
<module name="project-name" target="1.7" />
</bytecodeTargetLevel>
Я решил это, установив поле пустым:
Настройки> Компилятор> Компилятор Java> Версия байт-кода проекта
Чем IntelliJ использует версию JDK по умолчанию.
С одного момента на другой я тоже получал эту ошибку без четкой причины. Я изменил все настройки на компиляторе / модуле и т. Д. Но в конце я просто воссоздал проект IntelliJ путем повторного импорта проекта Maven, и проблема была решена. Я думаю, что это ошибка.
IntelliJ 12 129,961
Я сделал это после небольшого обновления IntelliJ IDEA 14 до версии 14.1. Для меня поменялось редактирование top / parent pom, а затем щелкнул повторно импортировать Maven (если он не автоматический).
Но, может быть, достаточно щелкнуть правой кнопкой мыши на модуле (модулях) / агрегатном / родительском модуле и Maven -> Reimport.
Если это проект Gradle, в вашем файле build.gradle найдите следующие параметры:
sourceCompatibility = "xx"
targetCompatibility = "xx"
Для всех подпроектов в вашем корневом файле build.gradle вы можете поместить:
subprojects { project ->
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
Хотя языковые уровни можно установить вручную в Idea> Настройки, если это проект Gradle, Idea автоматически синхронизирует файлы модуля .iml из настроек Gradle (протестировано с Idea 15+). Таким образом, все ваши ручные изменения отменяются при обновлении gradle.
На основании документации Gradle , если они не установлены, используется текущая конфигурация JVM.
Я нашел другой способ столкнуться с этой ошибкой. Вы можете получить это, если вы реорганизовали структуру каталогов, и один из ваших poms указывает на старого родителя, который больше не настраивает javac (потому что эта конфигурация была перемещена на средний уровень). Если это происходит, верхний уровень по умолчанию равен 1,5, а неправильно ведущий себя нижний уровень наследует его.
Поэтому, когда вы видите эту ошибку, вы должны проверить, что ваша структура pom соответствует вашей структуре каталогов.
Если сборка Maven работает нормально, попробуйте синхронизировать структуру проектов Maven и IntelliJ IDEA.
В окне инструментов Maven нажмите кнопку обновления . При нажатии этой кнопки IntelliJ IDEA анализирует структуру проекта в окне инструментов Maven.
Обратите внимание, что это может не помочь, если вы используете сборку EAP, поскольку функция синхронизации Maven иногда может быть нарушена.
Убедитесь, что выбрана правильная зависимость. Файл> Структура проекта
Выберите свой проект и перейдите на вкладку Зависимости. Выберите правильную зависимость из выпадающего списка или создайте новую.
Если все предыдущие решения не сработали для вас (как в моем случае), вы можете удалить файлы конфигурации intellij:
Intellij будет восстанавливать новые позже. Однако, будьте осторожны, это также приведет к удалению всей конфигурации intellij, выполненной на projet (то есть: конфигурация режима отладки, ...)