首页 > 解决方案 > 在 Intellij Idea 中,如何使用与我的源 java 版本不同的 java 版本运行测试

问题描述

我的主要来源有 java 版本 7

我想在我的测试中使用 java 8。所以我将编译器插件更新为

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <version>3.8.1</version>
   <configuration>
      <source>7</source>
      <target>7</target>
      <testSource>8</testSource>
      <testTarget>8</testTarget>
   </configuration>
</plugin>

这样我就可以在单元测试中使用 java 8 特性。当我从命令行使用 maven 运行测试时,这工作正常。

但是当我直接从 intellij 运行测试时,它会抛出错误,提示“源 7 不支持 lambda 表达式”

看起来它使用相同的源版本进行测试。

我如何配置 Intellij 以使用不同的 java 版本进行测试

标签: javaintellij-idea

解决方案


IntelliJ IDEA 尚不支持通过 Maven 项目中的另一个 Java 解释器运行测试。这是对此的功能要求:

https://youtrack.jetbrains.com/issue/IDEA-85478

随意投票并关注它以获取更新。

其中一位用户(单独的 Maven 配置文件)描述了一种解决方法:https ://youtrack.jetbrains.com/issue/IDEA-85478#focus=Comments-27-1994481.0-0

顺便说一句,Gradle<->IntelliJ IDEA 集成支持这一点:

compileTestJava {
    sourceCompatibility = "1.8"
}

推荐阅读