序
本文主要研究下在带有ลอมบอก (1.16.20 版本) 注解的代码在 Java10 下的编译问题。
问题
ข้อผิดพลาดร้ายแรงที่รวบรวมที่ org.apache.maven.lifecycle.internal.mojoexecutor.execute (mojoexecutor.java:216) ที่ org.apache.maven.lifecycle.internal.mojoexecutor.execute org.apache.maven.lifecycle.internal.mojoexecutor.execute (mojoexecutor.java:145) ที่ org.apache.maven.lifecycle.internal.lifecyclemodulebuilder.buildproject org.apache.maven.lifecycle.internal.lifecyclemodulebuilder.buildproject (LifecyclemoduleBuilder.java:80) ที่ org.apache.maven.lifecycle.internal.builder.singlethreaded.singlethreathededbuilder.build (SinglethreadedBuilder.java:51) ที่ org.apache.maven.lifecycycycycycyclestarter. org.apache.maven.defaultmaven.doexecute (defaultmaven.java:307) ที่ org.apache.maven.defaultmaven.doexecute (defaultmaven.java:193) ที่ org.apache.maven.defaultmaven.execute org.apache.maven.cli.mavencli.execute (mavencli.java:862) ที่ org.apache.maven.cli.mavencli.domain (mavencli.java:286) ที่ org.apache.maven.maven.mavencli java.base/jdk.internal.reflect.nativemethodaccessorimpl.invoke0 (วิธีการดั้งเดิม) ที่ java.base/jdk.internal.reflect.nativemethodaccessorimpl.invoke java.base/jdk.internal.reflect.delegatingmethodaccessorimpl.invoke (มอบหมาย Methodaccessorimpl.java:43) ที่ java.base/java.lang.reflect.method.invoke (method.java:564) org.codehaus.plexus.classworlds.launcher.launcher.launchenhanced (Launcher.java:289) ที่ org.codehaus.plexus.classworlds.launcher.launcher.launch org.codehaus.plexus.classworlds.launcher.launcher.mainwethexitcode (Launcher.java:415) ที่ org.codehaus.plexus.classworlds.launcher.launcher.main (Launcher.java:356) org.apache.maven.plugin.compiler.abstractCompilermojo.execute (AbstractCompilermojo.java:1086) ที่ org.apache.maven.plugin.compiler.compilermojo.execute org.apache.maven.plugin.defaultbuildpluginmanager.executemojo (defaultBuildPluginManager.java:134) ที่ org.apache.maven.lifecycle.internal.mojoexecutor.execute org.codehaus.plexus.compiler.compilerexception: java.lang.exceptionininitializerror ที่ org.codehaus.plexus.compiler.javac.javaxtoolscompiler.Compileinprocess org.codehaus.plexus.compiler.javac.javaccompiler.performcompile (javaccompiler.java:174) ที่ org.apache.maven.plugin.compiler.abstractcompilermojo.execute java.lang.runtimeException: java.lang.exceptionInitializerError ที่ jdk.compiler/com.sun.tools.javac.api.javactaskimpl.handleexceptions (javactaskimpl.java:158) ที่ jdk.compiler/com.sun.tools.javac.api.javactaskimpl.docall (javactaskimpl.java:96) ที่ jdk.compiler/com.sun.tools.javac.api.javactaskimpl.call org.codehaus.plexus.compiler.javac.javaxtoolscompiler.compileinprocess (javaxtoolscompiler.java:126) ... 25 Morecaused โดย: java.lang.exceptionininitializerror java.base/java.lang.class.forname0 (วิธีการดั้งเดิม) ที่ java.base/java.lang.class.forname (class.java:374) ที่ lombok.core.spiloadutil $ 1 $ 1 lombok.javac.handlerlibrary.loadannotationhandlers (handlerlibrary.java:171) ที่ lombok.javac.handlerlibrary.load (handlerlibrary.java:156) ที่ lombok.javac.javactransformer lombok.javac.apt.lombokprocessor.init (lombokprocessor.java:89) ที่ lombok.core.annotationprocessor $ javacdescriptor.want (Annotationprocessor.java:87) lombok.launch.annotationprocessorhider $ AnnotationProcessor.init (คำอธิบายประกอบ Processor.java:69) ที่ jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment $ discoveredprocessors $ processorstateiterator.next (javacprocessingenvironment.java:771) jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment.discoverandrunprocs (javacprocessingenvironment.java:866) ที่ jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment.access $ 2100 (Javacprocessingenvironment.java:110) ที่ jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment $ round.run (javacprocessingenvironment.java:1202) ที่ jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment.doprocessing (javacprocessingenvironment.java:1311) ที่ jdk.Compiler/com.sun.tools.javac.main.javacompilemer. ที่ jdk.compiler/com.sun.tools.javac.main.javacompiler.compile (javacompiler.java:928) ที่ jdk.compiler/com.sun.tools.javac.api.javactaskimpl.lambda $ docall $ 0 jdk.compiler/com.sun.tools.javac.api.javactaskimpl.handleexceptions (javactaskimpl.java:142) ... 28 morecaused โดย: java.lang.classnotfoundexception: com.sun.tools.javac.code.code.typetags java.base/java.lang.classloader.findclass (classloader.java:711) ที่ java.base/java.lang.classloader.loadclass (classloader.java:566) ที่ lombok.launch.shadowclasslasslass java.base/java.lang.classloader.loadclass (classloader.java:499) ที่ java.base/java.lang.class.forname0 (วิธีการดั้งเดิม) ที่ java.base/java.lang.lass.forname (class.java:291) lombok.javac.javactreemaker $ schroedingertype.getfieldcached (javactreemaker.java:156) ที่ lombok.javac.javactreemaker $ typetag.typetag (Javactreemaker.java:245)
解决
这是当前 1.16.20 版本的问题, 通过升级到最新 snapshot 版本 1.16.21 即可搞定, 1.16.21 的版本更新描述如下::::
เวอร์ชัน: 1.16.21 (2018-03-29 11:54:42 UTC) v1.16.20 เป็นรุ่นล่าสุดที่มีเสถียรภาพล่าสุดของ Project Lomkok.platform: Fix สำหรับการใช้ Lombok พร้อมกับคุณสมบัติ Module-info.java ใหม่ของ JDK9 ปัญหา #985Platform: งานเริ่มต้นบางอย่างเกี่ยวกับการสนับสนุน JDK10.BUGFIX: การแก้ไขที่เป็นไปได้สำหรับ NetBeans <9. ปัญหา #1555PROMOTION: VAR ได้รับการส่งเสริมจากการทดลองไปยังแพ็คเกจหลักโดยไม่มีการเปลี่ยนแปลง การทดลอง 'เก่า' ยังคงอยู่รอบ ๆ แต่เลิกใช้แล้วและเป็นนามแฝงสำหรับแพ็คเกจหลักใหม่ เอกสาร VAR.old-cruft: lombok.experimental.builder และ lombok.experimental.value เป็นเศษซากที่เลิกใช้เมื่อคุณสมบัติเหล่านี้ยังคงอยู่ในการทดลอง ตอนนี้พวกเขาถูกลบออกทั้งหมด หากโครงการของคุณขึ้นอยู่กับ Lombok รุ่นเก่าซึ่งยังคงมีอยู่ ไม่หงุดหงิดลอมบอกยังคงประมวลผลคำอธิบายประกอบเหล่านี้ มันไม่รวมอยู่ในขวดอีกต่อไป
本地安装
MVN ติดตั้ง: ติดตั้งไฟล์ -dfile = lombok -1.16.21.jar -dgroupid = org.lombokproject -dartifactid = lombok -dversion = 1.16.21 -dpackaging = jar
更新依赖
<Ederency> <sdeperency> org.projectlombok </groupId> <ratifactid> Lombok </artifactid> <version> 1.16.21 </scope> <pope> ให้ </cope>
这样就大功告成了, 如果大家在测试的时候还有任何疑问, 可以在下方留言区讨论, 感谢大家对武林网的支持。