日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java10下编译lombok注解的代码

發布時間:2024/4/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java10下编译lombok注解的代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要研究下在帶有lombok(1.16.20版本)注解的代碼在java10下的編譯問題。

問題

Fatal error compilingat org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.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)at 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 compilingat org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1086)at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:168)at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)... 20 more Caused by: org.codehaus.plexus.compiler.CompilerException: java.lang.ExceptionInInitializerErrorat org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:173)at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:174)at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1075)... 23 more Caused by: java.lang.RuntimeException: java.lang.ExceptionInInitializerErrorat 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.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)... 25 more Caused by: java.lang.ExceptionInInitializerErrorat lombok.javac.handlers.HandleGetter.<clinit>(HandleGetter.java:303)at java.base/java.lang.Class.forName0(Native Method)at java.base/java.lang.Class.forName(Class.java:374)at 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)at lombok.javac.JavacTransformer.<init>(JavacTransformer.java:44)at lombok.javac.apt.LombokProcessor.init(LombokProcessor.java:89)at lombok.core.AnnotationProcessor$JavacDescriptor.want(AnnotationProcessor.java:87)at lombok.core.AnnotationProcessor.init(AnnotationProcessor.java:140)at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init(AnnotationProcessor.java:69)at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init>(JavacProcessingEnvironment.java:674)at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.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.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:142)... 28 more Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.code.TypeTagsat java.base/java.lang.ClassLoader.findClass(ClassLoader.java:711)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)at lombok.launch.ShadowClassLoader.loadClass(ShadowClassLoader.java:422)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)at java.base/java.lang.Class.forName0(Native Method)at java.base/java.lang.Class.forName(Class.java:291)at lombok.javac.JavacTreeMaker$SchroedingerType.getFieldCached(JavacTreeMaker.java:156)at lombok.javac.JavacTreeMaker$TypeTag.typeTag(JavacTreeMaker.java:245)at lombok.javac.Javac.<clinit>(Javac.java:155)... 49 more 復制代碼

解決

這是當前1.16.20版本的問題,通過升級到最新snapshot版本1.16.21即可搞定,1.16.21的版本更新描述如下:

version: 1.16.21 (2018-03-29 11:54:42 UTC) v1.16.20 is the latest stable release of Project Lombok. PLATFORM: Fix for using lombok together with JDK9's new module-info.java feature. Issue #985 PLATFORM: Some initial work on supporting JDK10. BUGFIX: Potential fix for Netbeans < 9. Issue #1555 PROMOTION: var has been promoted from experimental to the main package with no changes. The 'old' experimental one is still around but is deprecated, and is an alias for the new main package one. var documentation. OLD-CRUFT: lombok.experimental.Builder and lombok.experimental.Value are deprecated remnants of when these features were still in experimental. They are now removed entirely. If your project is dependent on an older version of lombok which still has those; fret not, lombok still processes these annotations. It just no longer includes them in the jar. 復制代碼

本地安裝

mvn install: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>provided</scope></dependency> 復制代碼

這樣就大功告成了

小結

當前release版本(1.16.20)的lombok在java10下面編譯有點小問題,不過可以使用最新的snapshot版本1.16.21來解決。

doc

  • Download 'Edgy Guinea Pig' - the Lombok Cutting Edge build
  • Add jdk9 compiler support #985
與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的java10下编译lombok注解的代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。