我正在使用Maven 3.5.0和JDK 9 build 171.当我尝试编译我的项目时,我得到了一个例外:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project admin: Fatal error compiling: ja-va.lang.NoClassDefFoundError: com/sun/tools/javac/file/BaseFileObject: com.sun.tools.javac.file.BaseFileObject
Run Code Online (Sandbox Code Playgroud)
我向MAVEN_OPTS添加了建议的标志,但没有成功:
--add-opens jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
Run Code Online (Sandbox Code Playgroud)
有什么建议?
小智 5
验证 Maven 使用的 Java 版本是否正确。
运行mvn -v这将显示 maven 正在使用的 Java 版本。
对我来说,Maven 使用的是 Java 15,但我的应用程序打算在 Java 8 上运行。将 JAVA_HOME 设置为 jdk8 的路径可以解决这个问题。
我的项目依赖于 Lombok 库。将 pom.xml 更新到版本 1.16.18 允许构建完成,但出现警告:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by lombok.javac.apt.LombokProcessor to field com.sun.tools.javac.processing.JavacProcessingEnvironment.discoveredProcs
WARNING: Please consider reporting this to the maintainers of lombok.javac.apt.LombokProcessor
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5114 次 |
| 最近记录: |