我已经 10 年没有开发过 Java,需要快速编译一个使用 Java 8 特性编写的插件项目。我下载了最新的 JDK(AdoptOpenJDK 16)并将其安装在我的 MacOS 开发机器上。
查看项目的 POM 文件,我看到了以下两个设置:
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
并阅读这些设置会提示编译器代码是使用 Java 8 功能编写的,并且编译的类需要与 1.8 JVM 兼容。
我按照开发人员的说明操作但遇到错误:
在初始构建时,以下错误将停止构建:
[ERROR] import: Entry[import from realm ClassRealm[project>org.github.flytreeleft:nexus3-keycloak-plugin:0.5.0-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR] : begin 0, end 3, length 2
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
类似的人在其他项目中遇到了同样的问题。最终,我使用了一种建议跳过 maven Enforcer以克服此错误的解决方法。
重建后,项目将失败,并在各种文件中出现大约 90 个编译错误。这些消息会说类似于:
String cannot be resolved to a type
这让我想到了这个有类似错误的 SO 问题……但没有好的答案。
我如何构建这个项目?