1. 环境
- ruoyi-vue-plus Version::5.6.0
- Springboot Version::3.5.12
- Knife4j Version::4.5.0
- Swagger Version: 2.8.15
2. 步骤
2.1 根 pom 文件引入Knife4j
(1)在项目的根pom文件中定义knife4j的版本
<knife4j.version>4.5.0</knife4j.version>
(2)文件位置:pom.xml
在项目的根pom文件中引入springdoc-openapi-starter-webmvc-ui和knife4j-openapi3-jakarta-spring-boot-starter这两个依赖
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
<version>${springdoc.version}</version>
</dependency>
<!-- 添加信标 knife4j -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>${knife4j.version}</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>${springdoc.version}</version>
</dependency>
(3)文件位置:ruoyi-common/ruoyi-common-doc/pom.xml
在ruoyi-common-doc模块的pom文件中引入对应的依赖,这里要排除springdoc-openapi-starter-webmvc-ui,因为knife4j中的springdoc-openapi-starter-webmvc-ui版本太旧了
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
</dependency>
<!-- 添加信标 knife4j -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<!-- 排除 springdoc-openapi-starter-webmvc-ui -->
<exclusions>
<exclusion>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
</exclusion>
</exclusions>
</dependency>
2.2 添加资源配置
修改ruoyi-common-web模块下的ResourcesConfig类,添加以下配置即可
文件位置:src/main/java/org/dromara/common/web/config/ResourcesConfig.java
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// 添加静态资源映射规则
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
//配置 knife4j 的静态资源请求映射地址
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
2.3 Maven 编译
- 注意:修改后 按照下面方式进行 Maven 编译,否则会出错;
- 出错原因:Knife4j 的旧 jar 还躺在本地仓库里(无害,IDEA 会按 pom.xml 声明加载),真正的根源是 IDEA 的运行时 classpath 缓存了旧的依赖解析结果。
- 第一步:在 IDEA 右侧 Maven 面板点 刷新按钮(↻ Reload All Maven Projects),等依赖重新拉取完成后重新运行。

- 第二步:如果第一步无效,执行 File → Invalidate Caches → Invalidate and Restart,彻底清除 IDEA 缓存后重启。
2.4 效果
Knife4J 效果

Swagger 效果



1113

被折叠的 条评论
为什么被折叠?



