22

我正在使用 OpenJDK 1.8 编写一个 Maven 应用程序并使用 TestNG 运行测试。

当我从命令行运行 Maven 时,一切正常,但是当我尝试在 IntelliJ 中运行测试时,make 过程显示以下错误:

java: javacTask: source release 8 requires target release 1.8

我有指向 1.8 JDK 和项目语言级别 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 正确运行测试

我错过了什么吗?

4

4 回答 4

73

CrazyCoder的提示之后,事实证明 .idea/compiler.xml 中有以下部分

<bytecodeTargetLevel> 
    <module name="game" target="1.7" /> 
</bytecodeTargetLevel> 

我将其更改为:

<bytecodeTargetLevel> 
    <module name="game" target="1.8" /> 
</bytecodeTargetLevel> 

它奏效了

于 2013-03-25T20:35:28.720 回答
7

还有另一种方法。转到文件-> 其他设置-> 在搜索栏中键入“javac”-> 将 JDK 默认更改为“1.8”或您的目标版本。

于 2014-10-07T17:02:48.813 回答
2

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>
于 2015-05-22T15:27:33.993 回答
0

对我来说,我需要去文件 > 项目结构 > 模块。我的一半模块将其“模块 SDK”字段设置为错误的内容(而不是应有的 Project Default)。

于 2015-07-10T02:41:18.473 回答