【问题标题】:@Override not working in Maven project@Override 在 Maven 项目中不起作用
【发布时间】:2014-06-10 08:49:18
【问题描述】:

我有几个这样的覆盖方法:

@Override
public int compareTo(Property p) {
    return getText().compareTo(p.getText());
}

作为Java项目,它工作正常,但作为一个Maven项目,它返回以下错误:

The method compareTo(Property) of type Property must override a superclass method

在对此进行研究后,我想我应该将我的 JRE 系统库 (jdk1.6_u25) 作为依赖项包含在我的 POM 文件中,或者这是一个完全不同的问题?

非常感谢。

【问题讨论】:

  • 您不需要将 JDK 添加为依赖项。你能确认你的班级正在实施Comparable<Property>吗?
  • 这样设置JDK版本是行不通的;如果您想设置源版本和目标版本,请按照maven.apache.org/plugins/maven-compiler-plugin/examples/… 中的说明进行操作。但是这可能不是这里的问题。
  • @Will 是的,该类正在实现Comparable<Property>

标签: java eclipse maven


【解决方案1】:

您不需要其他依赖项。但默认情况下,maven 使用 Java 5 语言级别,其中 @Override 不允许实现接口方法。这是在 6 中引入的。

因此,您必须像这样配置编译器插件以使用语言级别 6:

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

【讨论】:

  • 感谢您的及时回复,我已复制并粘贴您的代码,它返回The managed version could not be determined. The managed definition location could not be determined, probably defined by "import" scoped dependencies. 非常感谢。
  • 我从来没有发过这个。尝试在&lt;plugin&gt; 部分中添加&lt;version&gt;3.1&lt;/version&gt;
  • 没关系,我已经找出问题所在并将其发布为答案。感谢您的帮助。
【解决方案2】:

compareTo 是一个通用方法。不使用泛型,因此compareTo(Object) 是您可以覆盖的唯一方法。

请检查:

  1. Maven 使用支持泛型的 java 编译。
  2. 源级别 >= 5。

执行mvn -V查看java maven用什么版本编译。

问候

【讨论】:

  • Apache Maven 3.2.1,Java 版本 1.6.0_25
  • @Kurtiss 您是否像mvn install 通过命令行一样通过命令行执行“mvn -V”,或者您是否对其中任何一个使用了 maven-eclipse-integration?请注意,它可能会有所作为。
  • 通过命令提示符获取此信息,无论如何没关系,我已经找出问题所在并将其发布为答案。感谢您的帮助。
【解决方案3】:

谢谢大家的cmets,很多人说Maven默认使用Java 5,可能是问题的原因,因此,我能够通过这个答案确定问题:

Why is javac failing on @Override annotation

JDK 编译器的合规级别默认设置为 1.5;一旦我将它设置为 1.6,错误就被删除了。

非常感谢。

【讨论】:

    猜你喜欢
    • 2022-08-03
    • 2018-02-20
    • 1970-01-01
    • 2019-01-25
    • 2018-05-31
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    相关资源
    最近更新 更多