当使用IntelliJ IDEA运行JUnit测试时,我得到
我该如何纠正呢?
Maven构建工作正常。(这就是为什么我在IDEA配置问题上相信这一点)
很可能你从Maven导入了错误的编译器选项:
还要检查截图中概述的项目和模块字节码(目标)版本设置。
其他配置源语言级别的地方:
Maven 默认语言级别是1.5(5.0),你会在上面的屏幕截图中看到这个版本作为模块语言级别。
这可以使用pom.xml中的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>
IntelliJ IDEA将在你在Maven项目工具窗口中再输入 Maven项目后尊重这个设置:
我遇到了这个问题,解决办法是去项目设置>模块>单击特定模块>依赖项选项卡。我注意到模块SDK仍然设置在1.6,我将其更改为1.7,它工作了。
在我的情况下,我已经在>编译器> Java编译器中找到了必需的选项('目标字节码版本')(intelij idea 12.1.3)
从这一刻到另一刻,我也得到了这个错误,没有明确的原因。我改变了编译器/模块等的各种设置。但最后,我只是通过重新导入Maven项目重新创建了IntelliJ项目,问题就解决了。我觉得这是个漏洞。
IntelliJ 12 129.961
您查看过您的构建配置了吗?如果您使用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>
类似于下面讨论的intellij13 &14,但是在设置/首选项面板中有一个额外的级别:设置 > 构建、执行、部署 > 编译器 > Java编译器。
在IntelliJ 13和14中,检查设置> Compiler > Java Compiler UI以确保在模块中没有针对不同的字节码版本。
我解决了贝娄方法
文件>>项目结构>>项目>>项目语言级别 ——>设置正确的版本(例如:1.5)
我通过将字段设置为空白来解决这个问题:
设置> Compiler > Java Compiler >项目字节码版本
Than IntelliJ使用JDK默认版本。
但它可能只够右键单击模块(s)/聚合/父模块和Maven ->重新导入。
在IntelliJ IDEA 14.1中,“目标字节码版本”位于不同的位置。
以下的改变对我来说是有效的:
文件>设置…>构建、执行、部署>编译器> Java编译器:将目标字节码版本从1.5更改为1.8
修改下面路径下项目的编译器设置文件,将'target'改为1.7:
/项目/ .idea / compiler.xml
<bytecodeTargetLevel> <module name="project-name" target="1.7" /> </bytecodeTargetLevel>
如果它是一个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配置。
我找到了另一种遇到这种错误的方法。如果您一直在重新组织目录结构,并且其中一个poms指向不再配置javac的旧父目录(因为该配置已移动到中间层),就会出现这种情况。如果发生这种情况,顶层默认为1.5,行为不端的底层pom继承它。
因此,当您看到这个错误时,要检查的另一件事是您的pom结构是否与目录结构正确匹配。
确保选择正确的依赖项。 文件>项目结构
选择您的项目并导航到Dependencies选项卡。从下拉菜单中选择正确的依赖项或创建新的依赖项。
如果Maven构建工作正常,请尝试同步Maven和IntelliJ IDEA项目的结构。
在Maven工具窗口中,单击刷新按钮。按下这个按钮,IntelliJ IDEA将在Maven工具窗口中解析项目结构。
注意,如果您正在使用EAP构建,这可能没有帮助,因为Maven同步特性有时可能会被破坏。
如果之前所有的解决方案都不适合你(这是我的情况),你可以删除intellij配置文件:
Intellij稍后将重新生成新的。 但是,注意,这也会删除项目上的所有intellij配置(即:调试模式的配置,…)
您需要在构建配置中更改Java编译器版本。