Maven项目解决Remove '@override' annotation终极方案
1、问题描述
当类实现接口后,点击自动实现接口方法时,会自动加上@override,但由于编译环境文件有错误,提示Remove '@override' annotation,网上找了些方法只能临时解决,不能彻底解决问题。比如修改:
1、Project->Properties->Project Facets->Java 1.7
2、Project->Properties->Java Compiler 1.7
当刷新maven(Alt+F5)项目时,这些修改的又回到了初始状态。
有时候Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多。
这是jdk的问题,@Override是JDK5就已经有了,但是不支持对接口的实现,认为这不是Override而报错。JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。
要解决该问题,首先要确保机器上安装了jdk 1.6,
然后,选择eclipse菜单Windows->Preferences-->java->Compiler-->compiler compliance level选择 1.6,刷新工程,重新编译。
如果问题还没解决,就在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.6,刷新工程,重新编译。
2、解决方法
在pom.xml中添加如下配置,然后右键Maven->Update project:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
< build >
< plugins >
<!-- jdk版本号 -->
< plugin >
< groupId >org.apache.maven.plugins</ groupId >
< artifactId >maven-compiler-plugin</ artifactId >
< configuration >
< source >1.7</ source >
< target >1.7</ target >
< encoding >UTF-8</ encoding >
</ configuration >
</ plugin >
</ plugins >
</ build >
|
有时候Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多。
这是jdk的问题,@Override是JDK5就已经有了,但是不支持对接口的实现,认为这不是Override而报错。JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。
要解决该问题,首先要确保机器上安装了jdk 1.6,
然后,选择eclipse菜单Windows->Preferences-->java->Compiler-->compiler compliance level选择 1.7,刷新工程,重新编译。
如果问题还没解决,就在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.7,刷新工程,重新编译。