使用IntelliJ IDEA运行JUnit测试时,我得到
我该如何纠正?
- 使用SDK 1.7
- 模块语言级别为1.7
Maven构建工作正常。(这就是为什么我在IDEA配置问题中相信这一点的原因)
使用IntelliJ IDEA运行JUnit测试时,我得到
我该如何纠正?
Maven构建工作正常。(这就是为什么我在IDEA配置问题中相信这一点的原因)
Answers:
您很可能在这里从Maven导入了不正确的编译器选项:
还要检查屏幕快照中概述的项目和模块字节码(目标)版本设置。
配置了源语言级别的其他位置:
Maven的默认语言级别是1.5(5.0),您将在上面的屏幕截图中将此版本视为模块语言级别。
可以使用里面的maven-compiler-plugin配置来更改pom.xml
:
<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>
要么
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
在Maven项目工具窗口中重新导入 Maven项目后,IntelliJ IDEA将遵循此设置:
pom.xml
Java编译器插件配置可以指定Java版本,下次您对pom.xml进行更改(如果启用了自动重新导入)或手动重新导入项目时,它将覆盖此设置。
类似于以下针对IntelliJ 13和IntelliJ 14讨论的内容,但在“设置/首选项”面板中有一个附加级别:设置 > 构建,执行,部署 > 编译器 > Java编译器。
在IntelliJ 13和14中,检查“ 设置”>“编译器”>“ Java Compiler UI”,以确保您未在模块中定位其他字节码版本。
在IntelliJ IDEA 14.1中,“目标字节码版本”位于其他位置。
以下更改对我有用:
文件>设置...>构建,执行,部署>编译器> Java编译器:将目标字节码版本从1.5 更改为1.8
我遇到了这个问题,解决方法是转到“项目设置”>“模块”>单击特定的模块>“依赖项”选项卡。我注意到Module SDK仍然设置为1.6,我将其更改为1.7,并且可以正常工作。
从IntelliJ IDEA 14到v14.1的微小升级后,我就遇到了这个问题。对我来说,更改top / parent pom的编辑会有所帮助,然后单击re-import Maven(如果它不是自动的)。
但这仅足以右键单击模块/聚集/父模块,然后单击Maven->重新导入。
如果是Gradle项目,请在build.gradle文件中搜索以下设置:
sourceCompatibility = "xx"
targetCompatibility = "xx"
对于所有子对象,可以在根build.gradle文件中输入:
subprojects { project ->
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
尽管您可以在Idea>设置中手动设置语言级别,但是如果它是Gradle项目,则Idea会自动从Gradle设置中同步模块.iml文件(已通过Idea 15+测试)。因此,刷新gradle时,所有手动更改都会被覆盖。
根据Gradle文档,如果未设置这些参数,则使用当前的JVM配置。
如果Maven构建正常,请尝试同步Maven和IntelliJ IDEA项目的结构。
在Maven工具窗口中,单击“刷新”按钮。按下此按钮时,IntelliJ IDEA会在Maven工具窗口中解析项目结构。
请注意,如果您使用EAP构建,这可能无济于事,因为Maven同步功能有时可能会中断。
确保选择了正确的依赖度。文件>项目结构
选择您的项目,然后导航到“依赖项”选项卡。从下拉列表中选择正确的依赖关系或创建新的依赖关系。
如果以前的所有解决方案都不适合您(我就是这种情况),则可以删除intellij配置文件:
Intellij稍后将重新生成新的。 但是,请小心,这还将删除在projet上进行的所有intellij配置(即:调试模式的配置,...)