Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

NO PUEDO CORRER LA VERSION DEL PROYECTO DEL PROFESOR

Hola. Estoy en el curso Spring Boot 3: proteja una api rest. Me baje el proyecto del profesor, porque el mio no funcionó más y no pude hallar la causa, y me da el siguiente mensaje de error:

java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'

No consigo resolverlo. ¿Alguna ayuda? gracias

1 respuesta

Hola Juan, ¡espero que estés bien!

El error que estás viendo, java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid', es un problema de incompatibilidad entre las versiones de tu JDK, Spring Boot y Lombok. Este error se produce principalmente por dos motivos:

1. Incompatibilidad entre Lombok y JDK:

  • Lombok 1.18.0 o versiones anteriores no son compatibles con JDK 19 o superior.
  • Se requiere Lombok 1.18.30 o superior para trabajar con JDK 19.

2. Incompatibilidad entre Spring Boot y Lombok:

  • Spring Boot 3.0.0 no es compatible con Lombok 1.18.0.
  • Se requiere Spring Boot 3.1.0 o superior para usar Lombok 1.18.30.

Solución:

Para solucionar este problema, puedes seguir estas dos estrategias:

Estrategia 1: Actualizar Lombok y Spring Boot:

  1. Actualiza Lombok: Cambia la versión de Lombok a 1.18.30 o superior en tu archivo pom.xml.
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.30</version>
</dependency>
  1. Actualiza Spring Boot (opcional): Si estás utilizando Spring Boot 3.0.0, actualízalo a Spring Boot 3.1.0 o superior.
<spring-boot.version>3.1.0</spring-boot.version>

Estrategia 2: Excluir Lombok de Spring Boot:

  1. Configura la exclusión de Lombok: En el plugin de Maven de Spring Boot, agrega la configuración para excluir Lombok.
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <exclusions>
            <exclusion>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </exclusion>
        </exclusions>
    </configuration>
</plugin>
  1. Asegúrate de tener Lombok en tu classpath: Asegúrate de que Lombok esté incluido en tu classpath para que tus clases puedan seguir utilizándolo.

Nota importante:

  • Antes de realizar cualquier cambio, asegúrate de hacer una copia de seguridad de tu proyecto.
  • Si estás utilizando un IDE como IntelliJ IDEA o Spring Initializr, puedes usar su funcionalidad para actualizar las dependencias de tu proyecto de forma más sencilla.

Espero que esta información te ayude a resolver el error y continuar con tu curso de Spring Boot 3. ¡Buena suerte!

¡Saludos y buenos estudios!