Solución de problemas
Verifique en orden la configuración y la forma del código de soporte cuando no haya archivos generados o falten rutas/tipos.
Orden de verificación
• Verifica si @Profile("local") está incluido en el perfil de ejecución real.
• Asegúrate de que no se haya producido una excepción de runner.start() en la consola local.
• Verifica si rootPath, routerPackage, entityPackage, handlerOutputDir están en la ubicación correcta después de la conversión de punto/barra.
• Verifica si el directorio de origen generado está incluido en el conjunto de fuentes del IDE y la herramienta de construcción.
• Agrega el tipo de módulo común externo a la clase jar descompilada o al classpath de origen.
• Verifica si RouterFunction es compatible con la forma de ruta/nido fluida y la referencia del método del manejador.
Ruta de punto y ruta de barra
La configuración normaliza . a / en múltiples entradas de ruta. Se pueden mezclar cadenas de paquetes y rutas del sistema de archivos, pero debes verificar la diferencia entre la configuración que incluye la ruta de salida completa como src.main.java.com.example... y la que solo incluye el paquete com.example....
Reproducir la configuración de rutas
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/Ejecuta desde la raíz del proyecto y comprueba que el routerDir impreso contiene el código del router. Incluir src/main/java en routerPackage duplica la ruta. Pasa esta configuración a handlerConfig del runner y ejecuta con el perfil local de Quick Start. handlerPackage es el nombre del paquete Java; handlerOutputDir es el directorio real de salida.
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.jsonSi las rutas son correctas pero falta la salida, revisa primero la primera excepción de runner.start(). Reproduce con una ruta mínima que use una referencia handler::method, inspecciona los archivos generados y después añade las rutas existentes. La presencia de swagger.json no basta: comprueba la ruta de solicitud y el método HTTP en paths frente al contrato real de respuesta.
Recreación infinita
El escritor de Swagger solo escribe el archivo cuando el contenido cambia. Si aún así ocurre una generación repetida, verifica si el archivo de salida está incluido en watchDirectory y si un formateador u otro watcher está modificando continuamente la fuente generada.