故障排除

当生成文件缺失或 route/type 缺失时,依次检查设置和支持代码的形状。


确认顺序

• 检查 @Profile("local") 是否包含在实际执行的配置文件中。

• 确保 runner.start() 在本地控制台中没有抛出异常。

• 检查 rootPath、routerPackage、entityPackage、handlerOutputDir 在点/斜杠转换后是否位于正确的位置。

• 确保生成的源目录包含在 IDE 和构建工具的源集内。

• 将外部公共模块类型添加到反编译的 jar 类或源类路径中。

• 确保 RouterFunction 支持流式路由/嵌套和处理方法引用的形式。

点路径与斜杠路径

配置在多个路径输入中将 . 规范化为 /。可以混合使用包字符串和文件系统路径,但需要确认将完整输出路径如 src.main.java.com.example... 与仅输入 com.example... 包的设置之间的差异。

复现路径配置

java
import com.byeolnaerim.watch.route.HandlerGenerator;

var handlerConfig = HandlerGenerator.Config.builder()
    .rootPath("src/main/java")
    .routerPackage("com.example.web.router")
    .handlerPackage("com.example.web.handler")
    .handlerOutputDir("src/main/java/com/example/web/handler")
    .build();

System.out.println(handlerConfig.routerDir());
// src/main/java/com/example/web/router/

在项目根目录运行,确认输出的 routerDir 包含路由源文件。若在 routerPackage 中包含 src/main/java,路径会重复。将此配置传入 runner 的 handlerConfig,然后按 Quick Start 使用 local profile 运行。handlerPackage 是 Java 包名,handlerOutputDir 是实际输出目录。

bash
test -d src/main/java/com/example/web/router
find src/main/java/com/example/web/handler -name '*.java'
# Quick Start swaggerOutputFile:
test -s src/main/resources/static/swagger.json

若路径正确却没有输出,先检查 runner.start() 的第一个异常。用一个包含 handler::method 引用的最小路由复现,确认生成文件后再加入原有路由。不能仅因 swagger.json 存在就认为正确:请将 paths 中的请求路径和 HTTP method 与实际响应契约进行核对。

无限重生

Swagger 写入器仅在内容更改时写入文件。即使如此,如果发生重复生成,请检查输出文件是否包含在 watchDirectory 中,格式化程序或其他监视器是否持续更改生成的源。

静态分析限制

© 2026 Byeolnaerim. 保留所有权利.介绍隐私政策