org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java

06-01 1727阅读

项目场景:

项目中执行clean,再执行install时报错,错误如下

org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0

问题描述

org/springframework/boot/maven/RepackageMojo是由较新版本的Java Runtime(类文件版本61.0)编译的,该版本的Java运行时只能识别52.0以下的类文件版本

原因分析:

通过对应表可知,这个文件是由java 17版本编译的,而现在系统中只能识别java 8以下的版本,java版本不一致导致打包失败,需要在出错的模块的打包插件中设置一个版本就好了

java对应表

49 = Java 5

50 = Java 6

51 = Java 7

52 = Java 8

53 = Java 9

54 = Java 10

55 = Java 11

org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java
(图片来源网络,侵删)

56 = Java 12

57 = Java 13

org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java
(图片来源网络,侵删)

58 = Java 14

org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java
(图片来源网络,侵删)

 上面是出错的截图,有两个地方需要确认

下面那个可以看到是哪个模块出现的问题上面那个可以看到,打包插件中spring-boot的版本是未知的,这就导致引用最新的版本,造成不一致的问题

解决方案:

找到出错模块的pom文件,设置一下打包插件的版本,和其他模块保持一下,重新刷新一下maven,再次打包就可以了

总结:

 因为之前有些模块的打包插件的版本也没有添加是可以正常使用的,但是今天突然不行了,后来发现spring boot 3.0版最近正式发布了,3.0版是基于java 17 的,不指定的话,默认引用最新的导致这种问题的发生,所以大家做的时候,所有模块的打包插件的版本一定要指定一下,避免出现这种问题,当然这个版本号最好在总的pom文件中定义一下,子模块中直接引用就可以了,不用在每个子模块中一一定义了

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码