Проблемы с запуском Java 8 TestNG внутри IntelliJ
Я пишу приложение Maven с использованием OpenJDK 1.8 и запуская тесты с использованием TestNG.
Когда я запускаю Maven из командной строки, все работает нормально, но когда я пытаюсь запустить тест внутри IntelliJ, тогда процесс make отображает следующую ошибку:
java: javacTask: source release 8 requires target release 1.8
У меня есть настройки проекта, указывающие на 1.8 JDK и Project Language Level 8.
Внутри Maven у меня есть следующий блок (который, как я предполагаю, еще не вызван, поскольку он кажется причиной, вызывающей проблему)
<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>
</configuration>
</plugin>
Я даже сконфигурировал Maven Runner JRE, чтобы указать на 1.8 JDK.
Я просто не могу заставить IntelliJ 12.0.4 нормально запускать тесты
Я что-то пропустил?
Ответы
Ответ 1
После подсказки CrazyCoder выяснится, что в файле .idea/compiler.xml был указан следующий раздел
<bytecodeTargetLevel>
<module name="game" target="1.7" />
</bytecodeTargetLevel>
Я изменил это на:
<bytecodeTargetLevel>
<module name="game" target="1.8" />
</bytecodeTargetLevel>
и он работал
Ответ 2
Есть и другой способ сделать это. Перейдите в Files- > Other Settings- > Type "javac" в строке поиска → измените значение JDK по умолчанию на "1.8" или любую вашу целевую версию.
Ответ 3
Ответ Xetius не работал у меня в IntelliJ 14.1.2
В конце концов я нашел раздел в .idea/misc.xml
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
Я закончил с:
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
Ответ 4
Для меня мне нужно было перейти в File > Project Structure > Modules. У половины моих модулей было поле "модуль SDK" установлено неверно (не Project Default, как и должно быть).