我有几个 Eclipse Java 项目,我将它们转换为 Maven。所有项目都显示接口(interface)方法被覆盖的错误。但当我运行“mvn clean”时,它确实显示为构建成功。此外,当我删除 Maven 性质时,项目编译时不会出现问题。为什么会发生这种情况?请指教。
最佳答案
这很可能是由于您的 pom 缺少您所针对的 Java 版本的规范; 1.6 之前的 JDK 版本不允许在实现接口(interface)方法的方法上使用 @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 配置应该可以恢复它。
关于java - 项目在转换为 Maven 后从所有接口(interface)方法被覆盖的地方抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34221851/