java - 在 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 版本进行测试
解决方案
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"
}