当使用IntelliJ IDEA运行JUnit测试时,我得到
我该如何纠正呢?
使用SDK 1.7 模块语言级别为1.7
Maven构建工作正常。(这就是为什么我在IDEA配置问题上相信这一点)
当使用IntelliJ IDEA运行JUnit测试时,我得到
我该如何纠正呢?
使用SDK 1.7 模块语言级别为1.7
Maven构建工作正常。(这就是为什么我在IDEA配置问题上相信这一点)
当前回答
如果它是一个Gradle项目,在你的构建中。Gradle文件,搜索以下设置:
sourceCompatibility = "xx"
targetCompatibility = "xx"
对于根构建中的所有子项目。Gradle文件,你可以放:
subprojects { project ->
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
虽然你可以在Idea >设置中手动设置语言级别,但如果它是一个Gradle项目,Idea会自动从Gradle设置中同步模块。iml文件(用Idea 15+测试)。因此,当gradle刷新时,所有手动更改都会被覆盖。
根据Gradle文档,如果没有设置这些,则使用当前的JVM配置。
其他回答
您查看过您的构建配置了吗?如果您使用maven 3和JDK 7,它应该是这样的
<build>
<finalName>SpringApp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
...
</build>
您需要在构建配置中更改Java编译器版本。
在IntelliJ IDEA 14.1中,“目标字节码版本”位于不同的位置。
以下的改变对我来说是有效的:
文件>设置…>构建、执行、部署>编译器> Java编译器:将目标字节码版本从1.5更改为1.8
IntelliJ 15, 2016 & 2017
类似于下面讨论的IntelliJ 13和14,但在设置/首选项面板中有一个额外的级别:设置>构建,执行,部署>编译> Java编译器。
IntelliJ 13和14
在IntelliJ 13和14中,检查Settings > Compiler > Java Compiler UI,以确保在模块中没有针对不同的字节码版本。
很可能你从Maven导入了错误的编译器选项:
还要检查截图中列出的项目和模块字节码(目标)版本设置。
其他配置源语言级别的地方:
项目结构|项目
|模块(检查每个模块)|来源
Maven默认的语言级别是1.5(5.0),你会在上面的屏幕截图中看到这个版本为Module语言级别。
这可以在pom.xml中使用maven-compiler-plugin配置来更改:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
or
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
在Maven项目工具窗口中重新导入Maven项目后,IntelliJ IDEA将尊重此设置: