Подтвердить что ты не робот

Проблемы с запуском 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 нормально запускать тесты

Я что-то пропустил?

4b9b3361

Ответ 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, как и должно быть).