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
设置Project Structure
File-->Project Structure-->Project Settings-->Project-->Project language level
终极大法
以上设置完后, 你会发现项目当时就正常了, 不过, 过段时间, 老问题又出现了!
此时, 祭出我们的终极大法! 直接在项目的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>
大招一出, 谁与争锋!