当前位置:   article > 正文

springboot2.7.10升级到3.0.8版本_lombok.bytecode.sneakythrowsremover' caused an exc

lombok.bytecode.sneakythrowsremover' caused an exception: java.lang.illegal

题外话

如果各位客官有需要开发一些小小需求,可以私我哦,承接小需求开发,或问题定位(仅限java),价格私聊哈

一、背景

由于spring-web5.3.25版本为高危漏洞,需要升级到6.0.0版本,故需要将springboot升级到3.0.8,一劳永逸。不过springboot3.0版本后jdk要求jdk17,故需要将项目的jdk也一起升级到jdk17。

二、升级后出现问题

1. Resource 和PostConstruct注解报错误

原因:升级后,javax下的所有包全部都被移到了jakarta
解决方法:import javax.annotation.Resource; 改成import jakarta.annotation.Resource;

2. lombok的@SneakyThrows出现异常

问题:升级后,代码里使用了@SneakyThrows注解,编译时报了如下异常:Error during the transformation of ‘com.xxx.xxx.CreateSqlTest’; post-compiler ‘lombok.bytecode.SneakyThrowsRemover’ caused an exception: java.lang.IllegalArgumentException: Unsupported class file major version 61
原因:springboot 版本和lombok版本不兼容
解决方法:
将lombok版本升级到1.18.26(原来版本是1.18.12)

3.mapstruct的mapper注解找不到

问题:编译出现如下异常

java: Internal error in the mapping processor: java.lang.NullPointerException: Cannot invoke "java.net.URL.toExternalForm()" because "resource" is null  	at org.mapstruct.ap.internal.processor.DefaultVersionInformation.createManifestUrl(DefaultVersionInformation.java:182)  	at org.mapstruct.ap.internal.processor.DefaultVersionInformation.openManifest(DefaultVersionInformation.java:153)  	at org.mapstruct.ap.internal.processor.DefaultVersionInformation.getLibraryName(DefaultVersionInformation.java:129)  	at org.mapstruct.ap.internal.processor.DefaultVersionInformation.getCompiler(DefaultVersionInformation.java:122)  	at org.mapstruct.ap.internal.processor.DefaultVersionInformation.fromProcessingEnvironment(DefaultVersionInformation.java:95)  	at org.mapstruct.ap.internal.processor.DefaultModelElementProcessorContext.<init>(DefaultModelElementProcessorContext.java:50)  	at org.mapstruct.ap.MappingProcessor.processMapperElements(MappingProcessor.java:218)  	at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:156)  	at org.jetbrains.jps.javac.APIWrappers$ProcessorWrapper.process(APIWrappers.java:206)  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)  	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  	at java.base/java.lang.reflect.Method.invoke(Method.java:568)  	at org.jetbrains.jps.javac.APIWrappers$1.invoke(APIWrappers.java:362)  	at jdk.proxy2/org.mapstruct.ap.MappingProcessor.process(Unknown Source)  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1023)  	at jdk.compiler/com.su.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:939)  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1267)  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1382)  	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1234)  	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:916)  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)  	at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:237)  	at org.jetbrains.jps.incremental.java.JavaBuilder.lambda$compileJava$2(JavaBuilder.java:524)  	at org.jetbrains.jps.incremental.java.JavaBuilder.invokeJavac(JavaBuilder.java:587)  	at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:522)  	at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:365)  	at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:290)  	at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:244)  	at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1519)  	at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1149)  	at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1299)  	at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:1114)  	at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:885)  	at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:467)  	at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:197)  	at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:150)  	at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:357)  	at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:179)  	at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:218)  	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)  	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)  	at java.base/java.lang.Thread.run(Thread.java:833)
  • 1

解决方法:
将mapstruct版本升级到1.4.1.final或者更新的版本,然后更新依赖
原来的依赖为:

		<dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-jdk8</artifactId>
            <version>${mapstruct.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <version>${mapstruct.version}</version>
            <scope>provided</scope>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

将上面依赖改成如下:

		<dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>${mapstruct.version}</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/704128
推荐阅读
  

闽ICP备14008679号