“坑”就一个字

IDEA编译报语法错误? 可能是默认机制搞的鬼!

2020-12-22  本文已影响0人  码哥说

前言

咸鱼IDEA导入了之前的项目, 环境没有任何变动, 但是编译时突然报错

例如这样的语法错误


image.png

@Override is not allowed when implementing interface method

咸鱼莫名奇妙, 第一反应就是JDK包的问题, IDEA点开


image.png

没毛病, JDK1.8啊, 怎么可能不支持“@Override ”语法呢???

经过一番折腾,才明白原因和IDEA的默认设置有关:

IntelliJ IDEA导入或编译项目的时候, 会因为各种原因自动更改项目的language level,因此需要重新设置, 默认的java language level是1.5, 并不是JDK的1.8

知道了原因, 我们如何接下来就来修改

设置Preferences

Preferences-->Build,Execution,Deployment-->Compiler--》Java Compiler-->Project Bytecode Version

image.png

设置Project Structure

File-->Project Structure-->Project Settings-->Project-->Project language level

image.png image.png

终极大法

以上设置完后, 你会发现项目当时就正常了, 不过, 过段时间, 老问题又出现了!

此时, 祭出我们的终极大法! 直接在项目的pom.xml中指定编译版本

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

大招一出, 谁与争锋!

请关注我的订阅号

订阅号.png
上一篇下一篇

猜你喜欢

热点阅读