文章目录
-
- 问题
- why
- 第一步,确定springboot的版本
- [第二步:查 Spring Boot 支持的 JDK](#第二步:查 Spring Boot 支持的 JDK)
- [第三步:查 Spring Boot 管理的依赖版本(最重要)](#第三步:查 Spring Boot 管理的依赖版本(最重要))
- 总结
-
- [参考 [思考思路](https://chatgpt.com/share/69ac21f3-eda4-8009-922b-efa79b57669f)](#参考 思考思路)
- 进一步解决
问题
-
D:\project\spring_project\lease\web\web-admin\src\main\java\com\atguigu\lease\web\admin\custom*config\Knife4jConfiguration.java:6:33 *
*问题所在:`config\Knife4jConfiguration.java:6:33`- 对应依赖坐标
knife4j-openapi3-jakarta-spring-boot-starter
- 对应依赖坐标
-
java: 无法访问org.springdoc.core.models.GroupedOpenApi 错误的类文件: /D:/dev...perSoftware/Environment/maven/repository/org/springdoc/springdoc-openapi-starter-common/2.3.0/springdoc-openapi-starter-common-2.3.0.jar!/org/springdoc/core/models/GroupedOpenApi.class 类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中。
- 具有错误的版本 61.0, 应为 52.0 :x项目运行jdk8,而knife4j的版本对应17,不兼容
- 哪个依赖导致的springdoc-openapi-starter-common-2.3.0.jar这个依赖来自:Springdoc OpenAPI。--
knife4j-openapi3-jakarta-spring-boot-starter

现在用的版本knife4j 4.5.0,而 Knife4j 4.x 是基于 SpringBoot3 的。SpringBoot3 要求:Java 17+
但是本项目是2.7.*,jdk是8。降低 Knife4j 版本:原来的<knife4j.version>4.5.0</knife4j.version>降低为<knife4j.version>4.3.0</knife4j.version>.
why


反思?
那么我在今后怎么去避免这个问题的出现呢?在这个大数据大模型智能时代?我怎么操作?怎么思考?批判性思考
?
先确定核心框架版本 → 再查它支持的 JDK → 再选兼容的第三方依赖版本。
本次出错
SpringBoot 2.7
JDK 8
Knife4j 4.5
而 Knife4j 4.5 → SpringBoot3 → JDK17,所以不兼容。
处理
在 Spring 项目里,Spring Boot 是核心版本。
所以
第一步,确定springboot的版本
xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
</parent>
只要确定这个版本,很多依赖版本其实已经确定了。
第二步:查 Spring Boot 支持的 JDK
这个需要去官方查找。
官方文档:Spring Boot
Boot 官方支
持表大致如下

第三步:查 Spring Boot 管理的依赖版本(最重要)
SpringBoot有一个 依赖版本管理表:spring-boot-dependencies
比如,2.7.3:org.springframework.boot:spring-boot-dependencies:2.7.3.
这里面已经规定了:
mysql
jackson
logback
tomcat
redis
junit
等 100多个依赖的版本。
可以在 Maven 中查看:mvn dependency:tree或者在 Maven 仓库网站查。
附上最常用的查询网站
Maven Central Repository 是全球最广泛使用的 Java 生态包管理与分发中心,由 Sonatype 维护与运营。它是
Apache Maven、Gradle 等构建工具的默认依赖仓库,为开发者提供数百万个开源 Java
库及构件(artifact)的下载与分发服务
Maven Central Repository 是全球最广泛使用的 Java 生态包管理与分发中心,由 Sonatype 维护与运营。它是
Apache Maven、Gradle 等构建工具的默认依赖仓库,为开发者提供数百万个开源 Java
库及构件(artifact)的下载与分发服务
- Maven Central(最权威)Maven Central Repository
可以查:
依赖版本
发布时间
依赖关系
- Maven Repository(最好用) MVNRepository
优点:
可以看到 依赖关系
可以看到 JDK要求
可以看到 兼容版本
- x GitHub 官方文档
很多框架会写兼容表,例如:
Knife4j
官方 README 会写:Boot2 → Knife4j 3.x
Boot3 → Knife4j 4.x
一个非常实用的小技巧(很多人不知道)
在 **IntelliJ IDEA 中:当你写:IDEA 会自动提示 兼容版本。
如果版本不兼容,通常 Maven 编译就会报错。
@@@
最稳的方式(企业常用)
最稳的方式(企业常用)
很多公司会 固定技术栈版本:
项目都按这个模板来。
xml
JDK 8
SpringBoot 2.7.12
MyBatisPlus 3.5.3
Knife4j 4.3
MySQL 8
Redis 6
总结
参考 思考思路
版本选择流程(非常重要)。以后做项目时建议这样做:选 SpringBoot:
- 选 SpringBoot:
- 选 JDK:
- 查依赖版本

