序
本文主要研究下在带有 Lombok (1.16.20 版本) 注解的代码在 Java10 下的编译问题。
问题
Compilation d'erreur fatale sur org.apache.maven.lifecycle.internal.mojoexecutor.excute (mojoexecutor.java:216) à org.apache.maven.lifecycle.internal.mojoexecutor.execute (mojoexecutor.java:153) sur org.apache.maven.lifecycle.internal.mojoexecutor.excute (mojoexecutor.java:145) sur org.apache.maven.lifecycle.internal.lifecyclemodulebuilder.buildproject (lifcylemodulebuilder.java:116) at at at at at at at at at at at at at at at at at at at at at at at at at at a org.apache.maven.lifecycle.internal.lifecyclemodulebuilder.buildproject (lifecyclemodulebuilder.java:80) à org.apache.maven.lifecycle.internal.builder.Singletheed.SinglethrededBuilder.build (SinglethedEdBuilder.java:51) à org.apache.maven.lifecycle.internal.lifecystarter.execute (Lifecyclestarter.java:128) ATT org.apache.maven.defaultmaven.DoExEcute (defaultmaven.java:307) sur org.apache.maven.defaultmaven.doExecute (defaultmaven.java:193) à org.apache.maven.defaultmaven.execute (defaultmaven.java:106) sur at org.apache.maven.cli.mavencli.execute (mavencli.java:862) à org.apache.maven.cli.mavencli.domain (mavencli.java:286) à org.apache.maven.cli.mavencli java.base / jdk.internal.reflect.nativemethodaccessorimpl.invoke0 (méthode native) à java.base / jdk.internal.reflect.nativemethodaccessorimpl.invoke (nativemethodaccessorimpl.java:62) at java.base / jdk.internal.reflect.delegatingMethodAccessOrimpl.invoke (déléguantMethodAccessorimp.java:43) à java.base / java.lang.reflect.method.invoke (méthode.java:564) org.codehaus.plexus.classworlds.launcher.launcher.launchenhanced (lancener.java:289) sur org.codehaus.plexus.classworlds.launcher.launcher.launch (lanceur.java:229) sur org.codehaus.plexus.classworlds.launcher.launcher.mainwithexitcode (lancener.java:415) sur org.codehaus.plexus.classworlds.launcher.launcher.main (lanceder.java:356) causé par: Org.apache.maven.plugin.mojoexpection: Org.apache.maven.plugin.mojoexpection: Org.apache.maven.plugin.mojoexpection: Org.apache.Maven.plugin.mojoexpection: Org.apache.Maven.Plugin.Mojoexpection: Org.apache.Maven.Plugin.Mojoexpection: Org.apache.Maven.Plugin.MojoExpeup Erreur compilant sur org.apache.maven.plugin.compiller.abstractcompilermojo.execcute (abstractcompilermojo.java:1086) sur org.apache.maven.plugin.compiller.compilermojo.execute (compilermojo.java:168) à la org.apache.maven.plugin.defaultbuildpluginmanager.executemojo (defaultbuildpluginmanager.java:134) sur org.apache.maven.lifecycle.internal.mojoexecutor.execute (mojoexecutor.java:208) ... 20 morcaused by: org.codehaus.plexus.compiler.CompilerException: java.lang.ExceptionInInitializerError at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:173) at org.codehaus.plexus.compiler.javac.javaccompiler.performcompile (javaccompiler.java:174) à org.apache.maven.plugin.compiller.abstractcompilermojo.execute (abstractcompilerojo.java:1075) ... 23 Zorcaused by: java.lang.runtimeException: java.lang.exceptioninInitializerError sur jdk.compiller / com.sun.tools.javac.api.javactaskimpl.handleExceptions (javactaskimpl.java:158) à la jdk.compiller / com.sun.tools.javac.api.javactaskimpl.docall (javactaskimpl.java:96) sur jdk.compiller / com.sun.tools.javac.api.javactaskImpl.call (javactaskimpl.java:90) at à org.codehaus.plexus.compiller.javac.javaxtoolscompiler.comPileInprocess (javaxtoolscompiler.java:126) ... 25 morecaused par: java.lang.exceptionininitializererror à lombok.javac.handlers.handlegetter. java.base / java.lang.class.forname0 (méthode native) à java.base / java.lang.class.forname (class.java:374) sur lombok.core.spiloadutil 1 $. Lombok.javac.handlerLibrary.LoadannotationHandlers (HandlerLibrary.Java:171) à Lombok.javac.handlerLibrary.Load (HandlerLibrary.java:156) à Lombok.javac.javactransformmer. lombok.javac.apt.lombokprocessor.init (lombokprocessor.java:89) sur lombok.core.annotationprocessor $ javacdescriptor.want (annotationprocessor.init (annotationprocessor.java:140) attrocess.init (annotationprocessor.java:140) attrocessor.init (annotationprocessor.java:140) attrocessor.init (annotationprocessor.java:140) attrocessor.init (AnnotationProcessor.Java:140) attrocessor.init (AnnotationProcessor.Java:140) attrocessor.Init (AnnotationProcessor.Java:140) AT Lombok.launch.annotationProcessorHider $ annotationprocessor.init (annotationprocessor.java:69) sur jdk.compiller / com.sun.tools.javac.processing.javacprocessinginvironment $ processorState. jdk.compiller / com.sun.tools.javac.processing.javacprocessingenvironment $ découverts de processorStateiterator.next (javacprocessinginvironment.java:771) à jdk.compiller / com.sun.tools.javac.processing.javacprocessingenvironment.discoverandrunprocs (javacprocessinginvironment.java:866) at jdk.compiller / com.sun.tools.javac.processing.javacprocessingenvironment.access 2100 $ (javacprocessingenvironment.java:110) à jdk.compiller / com.sun.tools.javac.processing.javacprocessinginvironment $ round.run (javacprocessingenvironment.java:1202) JDK.Compiler / com.sun.tools.javac.processing.javacprocessingenvironment.doprocessing (javacprocessingenvironment.java:1311) à jdk.compiller / com.sun.toools.javac.main.javacompiler.processannotes (javacompiler.java:1250) atooline (Javacompiler.java:1250) ATROCES jdk.compiller / com.sun.tools.javac.main.javacompiler. jdk.comPiler / com.sun.tools.javac.api.javactaskimpl.handleExceptions (javactaskimp.java:142) ... 28 Morecaused by: java.lang.classnotfounonxception: com.sun.tools.javac.code.typetags attory java.base / java.lang.classloader.findclass (classloader.java:711) sur java.base / java.lang.classloader.loadclass (classloader.loadclass (shadowclassoder.java:422) sur java.base / java.lang.classloader.loadclass (classloader.java:499) sur java.base / java.lang.class.forname0 (méthode native) à java.base / java.lang.class.forname (class.java:291) at lombok.javac.javactreemaker $ schroedingertype.getfieldcached (javactreemaker.java:156) sur lombok.javac.javactreemaker $ typetag.typetag (javactreemaker.java:245) à Lombok.javac.javac.
解决
这是当前 1.16.20 版本的问题 , 通过升级到最新 Instantané 版本 1.16.21 即可搞定 , 1.16.21 ::
Version: 1.16.21 (2018-03-29 11:54:42 UTC) v1.16.20 est la dernière version stable de Project Lombok.platform: Correction pour l'utilisation de Lombok avec la nouvelle fonctionnalité de module-info.java de JDK9. Numéro # 985PLATFORM: Quelques travaux initiaux sur la prise en charge de JDK10.BUGFIX: correction potentielle pour NetBeans <9. Issue # 1555 PROMOTION: VAR a été promue Experimental au package principal sans modifications. L'ancien expérimental est toujours là mais est obsolète et est un alias pour le nouveau package principal. Var Documentation.old-Cruft: Lombok.Experimental.Builder et Lombok.Experimental.Value sont des restes obsolètes lorsque ces caractéristiques étaient encore en expérimentale. Ils sont désormais entièrement supprimés. Si votre projet dépend d'une ancienne version de Lombok qui en a encore; Ne vous inquiétez pas, Lombok traite toujours ces annotations. Cela ne les inclut plus dans le pot.
本地安装
MVN Installation: installation-file -dfile = lombok-1.16.21.jar -dgroupId = org.lombokproject -DartifActid = Lombok -Dversion = 1.16.21 -dpackaging = jar
更新依赖
<dependency> <proupId> org.projectlombok </rompuprid> <letifactive> Lombok </ artifactId> <DERSE> 1.16.21 </DERNIFRIGNE> <COPE> fournie </cope> </Dependency>
这样就大功告成了 , 如果大家在测试的时候还有任何疑问 , 可以在下方留言区讨论 , 感谢大家对武林网的支持。