Maven项目打包,出现提示 Lombok 版本和 jdk 的编译器不兼容问题,升级Lombok【已解决】。

class lombok.javac.apt.LombokProcessor (in unnamed module @0x7d21852b) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x7d21852b

 1、错误的原因

这个错误通常表示在使用 Lombok 时,存在 模块访问限制 的问题。

这个错误信息表明在使用 Lombok 库时,遇到了 模块访问权限 的问题。

这个错误是 由于 Java模块系统(从Java 9 开始引入)的 封装性 导致的。

 

具体来说,Lombok 处理器(LombokProcessor)所在的未命名模块无法访问 jdk.compiler 模块中的 com.sun.tools.javac.processing.JavacProcessingEnvironment 类,因为 jdk.compiler 模块没有将该类导出到未命名模块。

错误表明lombok.javac.apt.LombokProcessor这个类试图访问jdk.compiler模块中的com.sun.tools.javac.processing.JavacProcessingEnvironment类,但是jdk.compiler模块并没有将其com.sun.tools.javac.processing包导出给无名模块(即你的应用或库)。

  • 这些引用都是关于Java编译器插件Lombok的错误信息。Lombok是一个Java库,它通过注解来简化Java代码的编写。这些错误信息都是由于Lombok与Java编译器之间的兼容性问题导致的。具体来说,这些错误信息都是由于Java编译器模块化所引起的。在Java 9及以上版本中,Java编译器被分成了多个模块,其中一些模块不再公开某些API,这可能会导致Lombok无法访问这些API并导致编译错误。
  • 解决这些问题的方法是更新Lombok版本或者更新Java编译器版本。如果您正在使用Maven,则可以尝试将Maven编译器插件版本更新到最新版本。此外,您还可以尝试在Maven构建中添加以下依赖项来解决这些问题:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
    <scope>provided</scope>
</dependency>
  • 这将确保在编译时Lombok库可用,并且不会导致与Java编译器之间的兼容性问题。
  •  打包之前本人用的是 1.18.10 版本
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
            <scope>compile</scope>
        </dependency>

 2、解决办法

  • 版本换成 1.18.20 即可

完成上述修改后,请清理并重新构建项目以验证问题是否已解决。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值