在IntelliJ中运行Java 8 TestNG的问题

Xet*_*ius 22 intellij-idea java-8

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

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

java: javacTask: source release 8 requires target release 1.8
Run Code Online (Sandbox Code Playgroud)

我的项目设置指向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>
Run Code Online (Sandbox Code Playgroud)

我甚至将Maven Runner JRE配置为指向1.8 JDK.

我似乎无法让IntelliJ 12.0.4正确运行测试

我错过了什么吗?

Xet*_*ius 73

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

<bytecodeTargetLevel> 
    <module name="game" target="1.7" /> 
</bytecodeTargetLevel> 
Run Code Online (Sandbox Code Playgroud)

我改为:

<bytecodeTargetLevel> 
    <module name="game" target="1.8" /> 
</bytecodeTargetLevel> 
Run Code Online (Sandbox Code Playgroud)

它起作用了

  • 这也可以在`Settings`→`Compiler`→`Java Compiler`→`Per-module bytecode version`中更改. (19认同)

小智 7

还有另一种方法可以做到.转到文件 - >其他设置 - >在搜索栏中键入"javac" - >将JDK默认值更改为"1.8"或您定位的任何版本.