Maven之高版本的 lombok 和 tomcat 7 插件冲突问题

高版本的 lombok 和 tomcat 7 插件冲突问题

在开发期间,当我们使用 tomcat7-maven-plugin 来作为运行环境运行我们项目使,如果我们项目中使用了 1.16.20 及以上版本的 lombok 包,项目启动时会报错:

text 复制代码
for annotations org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19

原因在于,从 1.16.20 开始 lombok 包中有了一个叫 module-info.class 的文件,而低版本的 tomcat 不能识别这个文件,从而导致运行时出错。

其实这个问题对于我们而言不是问题,因为项目部署时,肯定不会部署到 tomcat 7 上,至少是 tomcat 8.5 。

对于这个问题,解决办法有 3 个:

  • 办法 1:使用 tomcat8-maven-plugin ,代替 tomcat7 ;

  • 办法 2:使用低版本的 lombok,例如,1.14.x 的最高版本 1.14.8

  • 办法 3:将 lombok 的 <scope> 设置为 provided,这样,maven 在打包时就不会将 lombok 包含在 jar/war 包内。我们对 lombok 的使用也就是在编译时使用,运行时不需要它。

相关推荐
北城笑笑14 小时前
Vue 100 ,Metaspace memory lack Error( 元空间内存不足 )
java·前端·javascript·vue
Han.miracle14 小时前
Spring IoC 与 DI 核心知识点综合测试题
java·前端·数据库
婉然从物14 小时前
IDEA中plugins无法连接网络
java·ide·intellij-idea
xiaogai_gai14 小时前
ETL数据流程实战:轻易云平台整合金蝶云星空API接口
java·数据仓库·etl
sheji341614 小时前
【开题答辩全过程】以 基于springboot的健身预约系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
代码雕刻家14 小时前
3.1.课设实验-Java核心技术-检索简历
java·开发语言
尤理有理14 小时前
求你了,别用 YYYY-MM-dd!
java
共享家952714 小时前
Java 入门(IDEA 高效调试 与 数组)
java·开发语言·intellij-idea
东离与糖宝14 小时前
315警示:AI接口被恶意调用?Java高并发+限流+鉴权防护实战
java·人工智能
YmaxU14 小时前
SpringAIAlibaba学习使用 ---Graph
java·学习·spring·ai