序
本文主要研究下在带有 Lombok (1.16.20 版本) 注解的代码在 Java10 下的编译问题。
问题
Error fatal compilando en org.apache.maven.lifecycle.internal.mojoexecutor.exCute (mojoexecutor.java:216) en org.apache.maven.lifecycle.internal.mojoexecutor.execute (mojoexecutor.java:153) ATT org.apache.maven.lifecycle.internal.mojoexecutor.exCute (mojoexecutor.java:145) en org.apache.maven.lifecycle.internal.lifecyclemoduleBuilder.buildProject org.apache.maven.lifecycle.internal.lifecyclemoduleBuilder.BuildProject (lifecyClemoduleBuilder.java:80) en org.apache.maven.lifecycle.internal.builder.singlethreaded.SingLetHreadBuilder.Build (SolderSetLeTeReDBuilder.java:51) en org.apache.maven.defaultmaven.doExecute (defaultmaven.java:307) en org.apache.maven.defaultmaven.doexeCute (defaultmaven.java:193) en org.apache.maven.defaultmaven.execute (defaultmaven.java:106) org.apache.maven.cli.mavencli.execute (mavencli.java:862) en org.apache.maven.cli.mavencli.domain (mavencli.java:286) en org.apache.maven.cli.mavencli.main (mavencli.Java:197) java.base/jdk.internal.reflect.nativemethodaccessorImpl.invoke0 (método nativo) en java.base/jdk.internal.reflect.nativemethodaccessorImpl.invoke (nativemethodaccessorpl.Java:62) AT java.base/jdk.internal.reflect.delegatingmethodaccessorImpl.invoke (delegatingmethodaccessorimppl.java:43) en java.base/java.lang.reflect.method.invoke (método.Java:564) AT org.codehaus.plexus.classworlds.launcher.launcher.launchenhanced (Launcher.java:289) en org.codehaus.pexus.classworlds.launcher.launcher.launch (Launcher.Java:229) en org.codehaus.plexus.classworlds.launcher.launcher.mainwithexitcode (Launcher.java:415) en org.codehaus.plexus.classworlds.laauncher.launcher.main (lanzador.Java:356) Cause by: opache.maven.plugen.moJeJin.MoJEXECT.MOJEXECTIN. Compilación de error fatal en org.apache.maven.plugin.compiler.abstractcompilermo.execute (abstractCompilerjo.java:1086) en org.apache.maven.plugin.compiler.compilermojo.execute (compilermojo.Java:168) en At at org.apache.maven.plugin.defaultBuildPluginManager.executemojo (defaultBuildPluginManager.Java:134) en org.apache.maven.lifecycle.internal.mojoExecutor.execute (mojoexecutor.Java:208) ... 20 Morecaused por: org.codehaus.plexus.compiler.compilerexception: java.lang.exceptionInitializerError en org.codehaus.plexus.compiler.javac.javaxtoolscompiler.compileinproces org.codehaus.plexus.compiler.javac.javacCompiler.performCompile (javacCompiler.java:174) en org.apache.maven.plugin.compiler.AbstractCompilermo.Execute (abstractCompilermojo.Java:1075) ... 23 Morecaused por: java.lang.runtimeException: java.lang.ExceptionInitializerError en jdk.compiler/com.sun.tools.javac.api.javactaskimpl.handleexcepciones (javactaskiMpl.java:158) AT jdk.compiler/com.sun.tools.javac.api.javactaskimpl.docall (javactaskimpl.java:96) en jdk.compiler/com.sun.tools.javac.api.javactaskiM.call (javactaskiMpl.Java:90) en org.codehaus.plexus.compiler.javac.javaxtoolscompiler.compileInprocess (javaxtoolscompiler.java:126) ... 25 moreCaused por: java.lang.exceptionInIniTializerererRor en lombok.javac.handlers.handlegetter. <linit> ((clinit> (manejador) java.base/java.lang.class.forname0 (método nativo) en java.base/java.lang.class.forname (class.java:374) en lombok.core.spiloadutil $ 1 $ 1.Next (Spiloadutil.Java:111) AT lombok.javac.handlerLibrary.LoadAnnotationHandlers (HandlerLibrary.Java:171) en Lombok.Javac.HandlerLibrary.Load (HandlerLibrary.Java:156) en Lombok.Javac.Javactransformer. <InIn> (Javactransformer.Java:44) AT lombok.javac.apt.lombokprocessor.init (lombokprocessor.java:89) en lombok.core.annotationprocessor $ javacdescriptor.want (anotaciónprocessor.java:87) en lombok.core.annotationprocessor.init (annotationprocesor.java:140) lombok.launch.annotationProcessorhider $ annotationProcessor.init (anotationProcessor.java:69) en jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment $ procesador jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment $ descubridoprocessors $ procesadorStateIterator.next (javacprocessingenvironment.java:771) en jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment.discoverandrunprocs (javacprocessingenvironment.java:866) a jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment.access $ 2100 (javacprocessingenvironment.java:110) en jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment $ ronda.run (javacprocessingenvironment.java:1202) en jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment.doprocessing (javacProcessingEnvironment.java:1311) en jdk.compiler/com.sun.tools.javac.main.javacompiler.processannotations (javacompiler.java:1250) jdk.compiler/com.sun.tools.javac.main.javacompiler.compile (javacompiler.java:928) en jdk.compiler/com.sun.tools.javac.api.javactaskiM.lambda $ Docall $ 0 (javactAckImpl.java:100) jdk.compiler/com.sun.tools.javac.api.javactaskimpl.handleexceptions (javactaskimpl.java:142) ... 28 Morecaused por: java.lang.classnotfoundexception: com.sun.tools.javac.code.typetags at at at at at at at at at thtypetags java.base/java.lang.classloader.findclass (classloader.java:711) en java.base/java.lang.classloader.loadclass (classloader.java:566) en lombok.launch.shadowclassloader.loadclass (shadowclassloader.java:422) java.base/java.lang.classloader.loadclass (classloader.java:499) en java.base/java.lang.class.forname0 (método nativo) en java.base/java.lang.class.forname (class.java:291) AT lombok.javac.javacTreemaker $ schroedingerType.getfieldCached (javacTreemaker.java:156) en Lombok.javac.javacTreemeker $ typetag.typeTag
解决
这是当前 1.16.20 版本的问题 , 通过升级到最新 Instantánea 版本 1.16.21 即可搞定 , 1.16.21 的版本更新描述如下 :
Versión: 1.16.21 (2018-03-29 11:54:42 UTC) V1.16.20 es la última versión estable de Project Lombok.platform: Fix para usar Lombok junto con la nueva función de módulo de JDK9.Java. Problema #985 Platforma: algunos trabajos iniciales para admitir JDK10.Bugfix: Potencial solución para NetBeans <9. Problema #1555Protion: VAR se ha promovido de un paquete experimental al principal sin cambios. El 'viejo' experimental todavía está cerca, pero está en desuso, y es un alias para el nuevo paquete principal. VAR Documation.old-Cruft: lombok.experimental.builder y lombok.experimental.value son restos desaprobados de cuándo estas características aún estaban experimentalmente. Ahora se eliminan por completo. Si su proyecto depende de una versión anterior de Lombok que todavía los tiene; No se preocupe, Lombok todavía procesa estas anotaciones. Simplemente ya no los incluye en el frasco.
本地安装
MVN Instalar: Install -File -DFile = Lombok -1.16.21.Jar -DgroupId = org.lombokProject -DartifactId = Lombok -dversion = 1.16.21 -dpackaging = jar
更新依赖
<Spendency> <MoupRoD> org.projectlombok </groupid> <artifactid> lombok </artifactid> <versión> 1.16.21 </versión> <cope> proporcionó </cope> </pendency>
这样就大功告成了 , 如果大家在测试的时候还有任何疑问 可以在下方留言区讨论 可以在下方留言区讨论 感谢大家对武林网的支持。