Maven项目解决Remove '@override' annotation终极方案

文章出处: http://www.cnblogs.com/mao2080/

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,刷新工程,重新编译。


猜你喜欢

转载自blog.csdn.net/alenejinping/article/details/78739991