遇到这个问题是因为springboot3.0要求jdk17以上了,但是一开始不知道,用了jdk11,之后就遇到如下报错:
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 55.0
后来知道是版本要求,我就把project的sdk换成18了,没有出现问题,但这时我发现maven的pom文件中设置了jdk为11,所以我就很疑惑,难道不以pom文件的为准吗,这两个又有什么关系呢?请打佬们帮忙解答
pom 里的只是 自己项目 规定的jdk编译版本
spring boot 也是项目,不同版本,在spring boot自己的pom里定义的 jdk编译版本,可能是不一样的。
idea包含的jdk是 开发工具的编译环境用到的。
正常来说 按你项目pom的jdk,maven 会自动设置 当前idea的项目编译jdk 同 项目的pom一致,如果本机idea没有对应匹配的,就用默认的jdk。
如果你的项目 引用 spring boot,那为了编译版本保持一致,需要同spring boot 所用的保持一致
jdk 可以向下兼容,也就是高版本可以运行低版本的, 但低版本 不能运行 高版本编译的jar