转换为 maven 后,项目从任何地方抛出接口方法被覆盖的错误

Project throws errors from everywhere interfaces methods are overwritten after converting to maven

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

这很可能是因为您的 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 中手动修复项目配置;见

但是修复 pom 无论如何都是一个好主意,然后 refreshing/updating Eclipse 配置应该会选择它。