序
本文主要研究下在带有ロンボク(1.16.20版本)注解的代码在java10下的编译问题。
问题
org.apache.maven.lifecycle.internal.mojoexecutor.execute(mojoexecutor.java:216)でorg.apache.maven.lifecycle.internal.mojojoexecutor.execute(mojoexecutor.java:153)にある致命的なエラーコンパイルorg.apache.pache.maven.lifecycle.internal.lifemodulebuilder.buildproject(lifecyclemodulebuilder.java:116)にあるorg.pache.maven.lifecycle.internal.mojoexecutor.execute(mojoexecutor.java:145) org.apache.maven.lifecycle.internal.lifecyclemodulebuilder.buildproject(lifeciclemodulebuilder.java:80)at org.apache.maven.lifecycle.internal.builder.singlethreaded.singlethreadedbuilder.build(singlethreadedbuilder.java:51)at org.apache.maven.lifecycle.internal.lifecyclestterter.execute org.apache.maven.doexecute(defaultmaven.java:307)at org.apache.maven.defaultmaven.doexecute(defaultmaven.java:193)at org.apache.maven.defaultmaven.execute(defaultmen.java:106) org.apache.mavencli.execute(mavencli.java:862)at org.apache.maven.cli.mavencli.domain(mavencli.java:286)at org.apache.maven.cli.cli.mavencli.main(mavencli.java:197)at java.base/jdk.internal.reflect.nativemethodaccessorimpl.invoke0(native method)at java.base/jdk.internal.reflt.nativemethodaccessorimpl.invoke(nativemethodacsessorimpl.java:62)at java.base/jdk.internal.reflect.delegatingmethodaccessorimpl.invoke(Delegatingmethodaccessorimpl.java:43)at java.base/java.lang.reflect.method.invoke(method.java:564)at org.codehaus.plexus.classworlds.launcher.launcher.launchenhanced(launcher.java:289)at org.codehaus.plexus.classworlds.launcher.launcher.launch(launcher.java:229) org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)Caused by: org.apache.maven.plugin.MojoExecutionException: Fatal error org.apache.maven.plugin.compiler.abstractcompilermojo.execute(abstractcompilermojo.java:1086)でorg.apache.maven.plugin.compiler.compilermojo.execute(compilermojo.java:168)でコンパイルorg.apache.maven.plugin.defaultbuildpluginmanager.executemojo(defaultbuildpluginmanager.java:134)at org.apache.maven.lifecycle.internal.mojoexecutor.execute(mojoexecutor.java:208)... 20 Moreceuse org.codehaus.plexus.compiler.compilerexception:java.lang.exceptioninitializererror at org.codehaus.plexus.compiler.javaxtoolscompiler.compileinprocess(javaxtoolscompiler.java:173) org.codehaus.compiler.javac.javaccompiler.performcompile(javaccompiler.java:174)at org.apache.maven.plugin.compiler.abstractcompilermojo.execute(AbstractCompilermo.javajo.javajo.javajo.javajo.javajo.javajo.javajo.javajo.execute java.lang.runtimeexception:java.lang.exceptioninitializererror at jdk.compiler/com.sun.tools.javac.api.javactaskimpl.handleexceptions(javactaskimpl.java:158)at jdk.compiler/com.sun.tools.javac.api.javactaskimpl.docall(javactaskimpl.java:96)at jdk.compiler/com.sun.tools.javac.api.javactaskimpl.call(javactaskimpl.java:90)at org.codehaus.compiler.javaxtoolscompiler.compileinprocess(javaxtoolscompiler.java:126)... java.base/java.lang.class.forname0(ネイティブメソッド)java.base/java.lang.class.forname(class.java:374)のlombok.core.spiloadutil $ 1 $ 1.next(spiloadutil.java:111)at lombok.javac.handlerlibrary.loadannotationhandlers(handlerlibrary.java:171)at lombok.javac.handlerlibrary.load(handlerlibrary.java:156)atlombok.javac.javactransformer lombok.javac.apt.lombokprocessor.init(lombokprocessor.java:89)atlombok.core.annotationProcessor $ javacdescriptor.want(annotationProcessor.java:87)at lombok.core.annotationprocessor.init(annotation.java:140) lombok.launch.annotationProcessorhider $ annotationProcessor.init(annotationProcessor.java:69)at jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment $ processorstate jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment $ disdawedprocessors $ processorstateaterator.next(javacprocessingenvironment.java:771)at jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment.discoverandrunprocs(javacprocessingenvironment.java:866)at jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment.access $ 2100(javacprocessingenvironment.java:110)at jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment $ round.run(javacprocessingenvironment.java:1202)at jdk.compiler/com.sun.tools.javac.processing.javacprocessingenvironment.doprocessing(javacprocessingenvironment.java:1311)at jdk.compiler/com.sun.tools.javac.main.javacompiler.processannotations(javacompiler.java:1250)at jdk.compiler/com.sun.tools.javac.main.javacompiler.compile(javacompiler.java:928)at jdk.compiler/com.sun.tools.javac.api.javactaskimpl.lambda $ docall 0(javactaskimpl.java:100)at jdk.compiler/com.sun.tools.javac.api.api.javactaskimpl.handleexceptions(javactimpl.java:142) java.lang.classnotfoundexception:com.sun.tools.javac.code.typetags at java.base/java.lang.classloader.findclass(classloader.java:711)at java.base/java.lang.lang.classoloass(classloader.java:566) lombok.launch.shadowclassloader.loadclass(Shadowclassloader.java:422)at java.base/java.lang.classloader.loadclass(classloader.java:499)at java.base/java.lang.class.forname0(ネイティブ方法) java.base/java.lang.class.forname(class.java:291)atlombok.javac.javactreemaker $ schroedingertype.getfieldcached(javactreemaker.java:156)at lombok.javac.javactreemaker lombok.javac.javac。<clinit>(javac.java:155)... 49詳細
解决
这是当前1.16.20版本的问题、通过升级到最新スナップショット版本1.16.21即可搞定、1.16.21的版本更新描述如下:
バージョン:1.16.21(2018-03-29 11:54:42 UTC)v1.16.20は、Project Lombok.Platformの最新の安定したリリースです:JDK9の新しいモジュールinfo.java機能と一緒にLombokを使用するための修正。 Issue#985Platform:JDK10.Bugfixのサポートに関する最初の作業:NetBeans <9の潜在的な修正<9。問題#1555PROMOTION:VARは、変更なしで実験的からメインパッケージに宣伝されています。 「古い」実験的なものはまだ周りにありますが、非推奨であり、新しいメインパッケージのエイリアスです。 var documentation.old-cruft:lombok.experimental.builder and lombok.experimental.valueは、これらの機能がまだ実験的である場合の非推奨残骸です。現在、完全に削除されています。あなたのプロジェクトがまだそれらを持っているロンボクの古いバージョンに依存している場合;フレットではありませんが、ロンボクは依然としてこれらの注釈を処理しています。瓶には含まれなくなりました。
本地安装
MVNインストール:install -file -dfile = lombok -1.16.21.jar -dgroupid = org.lombokproject -dartifactid = lombok -dversion = 1.16.21 -dpackaging = jar
更新依赖
<Dependency> <GroupId> org.ProjectLombok </groupId> <Artifactid> lombok </artifactid> <version> 1.16.21 </version> <scope>
这样就大功告成了、如果大家在测试的时候还有任何疑问、可以在下方留言区讨论、感谢大家对武林网的支持。