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

来源:互联网 发布:软件股份股票行情 编辑:程序博客网 时间:2024/06/15 01:09
文章出处: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,刷新工程,重新编译。