IntelliJ目标字节码恢复

时间:2015-10-29 18:06:55

标签: java intellij-idea intellij-14

对于我目前正在处理的项目,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。

3 个答案:

答案 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设置造成的:

screen shot of intellij Maven settings

可以在Build,Execution,Deployment> Build Tools> Maven> Importing中找到此配置

默认情况下,它设置为“内部JRE”设置,在最新版本的Idea中为11。我必须选择它以使用项目配置为使用的1.8 JDK。

这很烦人,因为如果您混合使用11个项目和8个项目,则必须手动来回切换此设置。

每次重新导入pom.xml时,导致 module 输出总是 下降到11。

intellij idea project module settings

这是IntelliJ中一个非常烦人的错误。