对于我目前正在处理的项目,IntelliJ给了我编译错误Error:java: javacTask: source release 8 requires target release 1.8
。我进入了设置>构建,执行,部署>编译器> Java,并看到我的一个模块的目标字节码版本设置为1.5,所以我将其更改为1.8,编译,并且它工作。但第二天,我得到了同样的错误。我进入了设置,那个模块的目标字节码又回到了1.5。我把它改为1.8,它编译/运行得很好。这已经发生了多次,我对设置手动更改目标字节码版本的次数感到沮丧。
为什么目标字节码版本会继续恢复?我没有在pom或其他地方指定1.5,所以我很困惑为什么字节码版本一直设置为1.5。
答案 0 :(得分:8)
你需要把它写给你的POM:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
答案 1 :(得分:8)
您需要在pom.xml文件中指定源版本和目标版本,但由于默认情况下添加了maven-compiler-plugin
,因此更简单的方法是设置以下属性:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
答案 2 :(得分:1)
仅供参考。
尽管分别通过@isapir和@ carlos-a-ibarra分别提到的答案中的 both 和上述设置,pom.xml
仍然存在此问题。
我发现这是由于Intellij设置造成的:
可以在Build,Execution,Deployment> Build Tools> Maven> Importing中找到此配置
默认情况下,它设置为“内部JRE”设置,在最新版本的Idea中为11。我必须选择它以使用项目配置为使用的1.8 JDK。
这很烦人,因为如果您混合使用11个项目和8个项目,则必须手动来回切换此设置。
每次重新导入pom.xml
时,导致 module 输出总是 下降到11。
这是IntelliJ中一个非常烦人的错误。