【问题标题】:Project throws errors from everywhere interfaces methods are overwritten after converting to maven转换为 maven 后,项目从任何地方抛出错误接口方法被覆盖
【发布时间】:2015-12-11 10:55:43
【问题描述】:

我有几个 Eclipse Java 项目,我将它们转换为 Maven。所有项目都显示接口方法被覆盖的错误。但是当我运行“mvn clean”时,它确实显示为构建成功。此外,当我删除 Maven 特性时,项目编译没有问题。为什么会这样?请指教。

【问题讨论】:

  • 尝试清理并刷新。
  • 我试过了。不工作。从 Maven 和 Eclipse 中清除。没有任何效果。
  • 你在 eclipse 中使用哪个 Java 版本?
  • 我使用的是 java 1.8。 Maven 是 3.3
  • Eclipse 是否显示了 Maven 依赖项下所有正确的依赖项?

标签: java eclipse maven compiler-errors eclipse-mars


【解决方案1】:

这很可能是由于您的 pom 缺少您所针对的 Java 版本的规范; JDK 1.6 之前的版本不允许在实现接口方法的方法上使用@Override 注释。您应该始终指定他的 Java 版本,这样 Maven 就不必猜测您的意图。例如:

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

当您告诉 maven 配置您的 Eclipse 项目或通过 m2e 导入它时,它会查找该配置以应用于 Eclipse 中的相应配置。如果该版本不存在,它将使用您工作区的默认值,这可能因工作区而异。你可能遇到了,它猜错了。

您也可以在 Eclipse 中手动修复项目配置;见https://stackoverflow.com/a/1678170/639520

但无论如何,修复 pom 是个好主意,然后刷新/更新 Eclipse 配置应该可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-04
    • 2021-08-12
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    相关资源
    最近更新 更多