Resolutor de Builds Java — FinTrack API

Proyecto: fintrack-api v1.4.0  ·  Maven 3.9  ·  Java 21  ·  Spring Boot 3.2.1

Framework: SPRING
4
Errores iniciales
4
Errores corregidos
3
Archivos modificados
7 min
Tiempo de resolución
BUILD: SUCCESS — ./mvnw compile completado sin errores
Tests: 147/147 passed  ·  BUILD SUCCESS  ·  Total time: 38.4 s
Flujo de diagnóstico ejecutado
🔍
Paso 1 — Detección de framework

Leído pom.xml. Encontrado spring-boot-starter-parent 3.2.1. Framework: SPRING. Se activan reglas [SPRING].

💥
Paso 2 — Compilación inicial & parsing de errores

Ejecutado ./mvnw compile -q. 4 errores detectados en 3 archivos distintos. Causa raíz identificada: migración jakarta incompleta + annotation processors sin configurar.

🔧
Paso 3 — Aplicación de fixes quirúrgicos

3 archivos modificados. Sin refactorizar lógica de negocio. Sin cambiar firmas de métodos.

Paso 4 — Verificación post-fix

Ejecutado ./mvnw compile → BUILD SUCCESS. Luego ./mvnw test → 147/147 tests verdes. Nada roto.

Correcciones aplicadas
1
src/main/java/com/fintrack/service/PaymentService.java:87
FIXED
cannot find symbol — symbol: class IdempotencyKey

La clase IdempotencyKey existe en el paquete com.fintrack.domain pero el import fue eliminado accidentalmente en el merge.
Añadido el import faltante en la línea 12 del archivo. Sin tocar la lógica de negocio.
// PaymentService.java — línea 12 + import com.fintrack.domain.IdempotencyKey;
2
src/main/java/com/fintrack/config/SecurityConfig.java:23–24
FIXED
package javax.servlet does not exist

Spring Boot 3.x requiere Jakarta EE 9+ (jakarta.*). El archivo aún usaba los imports de javax.* del Spring Boot 2.x.
Migración quirúrgica de los 2 imports en SecurityConfig.java. Patrón estándar SB2→SB3.
- import javax.servlet.Filter; - import javax.servlet.http.HttpServletRequest; + import jakarta.servlet.Filter; + import jakarta.servlet.http.HttpServletRequest;
3
pom.xml — maven-compiler-plugin annotationProcessorPaths
FIXED
Annotation processor 'org.mapstruct.ap.MappingProcessor' threw an uncaught exception

Lombok 1.18.30 + MapStruct 1.5.x requieren orden específico en annotationProcessorPaths. El pom.xml tenía ambos como dependencias normales sin configurar el compiler plugin.
Añadido bloque annotationProcessorPaths en maven-compiler-plugin. Lombok primero, MapStruct segundo (orden obligatorio para compatibilidad).
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> + <annotationProcessorPaths> + <path> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.18.30</version> + </path> + <path> + <groupId>org.mapstruct</groupId> + <artifactId>mapstruct-processor</artifactId> + <version>1.5.5.Final</version> + </path> + </annotationProcessorPaths> </configuration> </plugin>
Output final del resolutor

📋 Resumen de sesión

Framework detectadoSPRING (spring-boot-starter-parent 3.2.1)
Build inicialFAILED — 4 errores de compilación
Build finalSUCCESS — 0 errores, 0 warnings
Tests147 / 147 passed — nada roto
Errores corregidos4 errores en 3 archivos
Archivos modificados PaymentService.java  SecurityConfig.java  pom.xml
Lógica de negocio tocadaNinguna — únicamente imports y configuración de build
Tiempo de resolución7 minutos
Principios aplicados
Fixes quirúrgicos — sin refactorizar
Verificación post-fix con ./mvnw test
Causa raíz, no supresión de síntomas
Sin @SuppressWarnings no aprobados
Firmas de métodos sin cambios
Import añadido > lógica cambiada