Solução de Problemas
Verifica a configuração e a forma do código de suporte em ordem quando não há arquivos gerados ou quando falta route/type.
Ordem de verificação
• Verifique se @Profile("local") está incluído no perfil de execução real.
• Verifique se a exceção de runner.start() não ocorreu no console local.
• Verifique se rootPath, routerPackage, entityPackage, handlerOutputDir estão nos locais corretos após a conversão de ponto/barra.
• Verifique se o diretório de origem gerado está incluído no conjunto de fontes do IDE e da ferramenta de build.
• Adicione o tipo de módulo comum externo ao classpath de decompilação de jar ou classe.
• Verifique se RouterFunction está na forma de referência de método fluente route/nest e handler.
Caminho com ponto e caminho com barra
A configuração normaliza . para / em várias entradas de caminho. Embora seja possível misturar strings de pacote e caminhos de sistema de arquivos, é necessário verificar a diferença entre a configuração que insere o caminho de saída completo como src.main.java.com.example... e a configuração que insere apenas o pacote com.example....
Reproduzir a configuração de caminhos
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/Execute na raiz do projeto e verifique se o routerDir exibido contém o código do router. Incluir src/main/java em routerPackage duplica o caminho. Passe essa configuração para handlerConfig do runner e execute com o perfil local do Quick Start. handlerPackage é o nome do pacote Java; handlerOutputDir é o diretório real de saída.
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.jsonSe os caminhos estiverem corretos, mas não houver saída, comece pela primeira exceção de runner.start(). Reproduza com uma rota mínima que use uma referência handler::method, verifique os arquivos gerados e então adicione as rotas existentes. A existência de swagger.json não basta: compare o caminho da requisição e o método HTTP em paths com o contrato real de resposta.
Recriação infinita
O escritor do Swagger só grava o arquivo quando o conteúdo muda. Se a geração repetida ocorrer, verifique se o arquivo de saída está incluído no watchDirectory e se o formatter ou outro watcher está alterando continuamente a fonte gerada.