Cómo transforma Amazon Q Developer el código para las actualizaciones del lenguaje Java - Amazon Q Developer

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cómo transforma Amazon Q Developer el código para las actualizaciones del lenguaje Java

Para transformar el código, Amazon Q Developer genera un plan de transformación que utiliza para actualizar la versión en lenguaje de código del proyecto. Después de transformar el código, proporciona un resumen de la transformación y las diferencias de los archivos para que pueda revisar los cambios antes de aceptarlos. Dado que Amazon Q Developer realiza los cambios mínimos necesarios para que el código actualizado sea compatible con el JDK de destino, es necesaria una transformación adicional para actualizar las bibliotecas y dependencias del proyecto. En las siguientes secciones, se proporcionan más detalles sobre cómo Amazon Q realiza la transformación.

Compilación del código y creación de un plan de transformación

Para empezar a transformar el código, Amazon Q compila el proyecto de forma local y genera un artefacto de compilación que contiene el código de origen, las dependencias del proyecto y los registros de compilación.

Tras generar el artefacto de compilación, Amazon Q compila el código en un entorno de compilación seguro y crea un plan de transformación, que se personaliza para el proyecto o módulo que vaya a actualizar. El plan de transformación describe los cambios específicos que Amazon Q intentará realizar, incluidas las nuevas versiones de las dependencias, los principales cambios de código y las sustituciones sugeridas para el código en desuso. Estos cambios se basan en la versión preliminar del código y pueden cambiar durante la transformación.

Transformación del código

Para transformar el código, Amazon Q intenta actualizarlo a la versión de Java de destino en función de los cambios propuestos en el plan de transformación. A medida que realiza los cambios, vuelve a compilar y ejecuta las pruebas unitarias existentes en el código de origen para corregir de forma iterativa los errores encontrados. La actualización del JDK se puede realizar desde la siguiente versión del código fuente a la versión de destino:

  • Java 8 a 17

  • Java 8 a 21

  • Java 11 a 17

  • Java 11 a 21

  • Java 17 a 21

Amazon Q realiza los cambios mínimos necesarios para que el código sea compatible con la versión de Java de destino. Una vez que Amazon Q realice una actualización mínima de JDK, puede iniciar una transformación independiente para actualizar todas las dependencias de terceros. Como alternativa, puede especificar las dependencias de terceros y sus versiones en un archivo YAML para actualizar únicamente esas dependencias durante la transformación de la actualización de la biblioteca.

Amazon Q intenta realizar los siguientes cambios al actualizar el código:

  • Actualizar los componentes de código en desuso de acuerdo con las recomendaciones de la versión de Java de destino

  • Actualizar las bibliotecas y marcos más populares a una versión compatible con la versión de Java de destino. Esto incluye la actualización de las siguientes bibliotecas y marcos a sus últimas versiones principales disponibles:

    • Apache Commons IO

    • Apache HttpClient

    • bc-fips

    • Cucumber-JVM

    • Hibernar

    • jackson-annotations

    • JakartaEE

    • Javax

    • javax.servlet

    • jaxb-api

    • jaxb-impl

    • jaxen

    • jcl-over-slf4j

    • JSON simple

    • jsr305

    • junit

    • junit-jupiter-api

    • Log4j

    • Micronaut

    • Mockito

    • mockito-core

    • Okio

    • PowerMockito

    • Quarkus

    • slf4j

    • slf4j-api

    • Spring Boot

    • Spring Framework

    • Spring Security

    • Swagger

    • testng

nota

No apague ni cierre la máquina local durante la transformación del código, ya que la compilación del cliente requiere una conexión de red estable.

Compilación de código en el entorno local

Durante una transformación, Amazon Q realiza compilaciones de verificación en el entorno local. Amazon Q transforma el código en el servidor en varios pasos. Después de cada paso, Amazon Q envía el código al entorno local para compilar y probar los cambios que ha realizado. A continuación, el código se devuelve al servidor para continuar con la transformación.

La compilación en el entorno local ayuda a verificar el código transformado al permitir que Amazon Q ejecute pruebas que requieren acceso a recursos privados. Para minimizar los riesgos de seguridad asociados a la compilación de código generado por IA en el entorno local, Amazon Q revisa y actualiza el código que genera para abordar problemas de seguridad.

Revisión del resumen de la transformación y aceptación de los cambios

Una vez completada la transformación, Amazon Q proporciona un resumen de la transformación con detalles sobre los cambios que ha realizado, incluido el estado de la compilación final, que indica si se ha actualizado todo el proyecto. También puede ver un resumen del registro de compilación para comprender los problemas que impidieron que Amazon Q compilara su código en la versión actualizada.

El resumen de la transformación también incluye las diferencias entre los cambios propuestos en el plan de transformación y los cambios que Amazon Q ha realizado finalmente para actualizar el código, así como cualquier cambio adicional que no estuviera en el plan original.

Tras revisar el resumen de la transformación, podrá ver los cambios que Amazon Q propone en una vista con diferencias de los archivos. Los cambios de código que Amazon Q sugiera no afectarán a los archivos del proyecto actual hasta que los acepte. El código transformado está disponible hasta 30 días después de que se complete la transformación.

Finalización de transformaciones parcialmente correctas

Según la complejidad y las características específicas de la base de código, es posible que haya casos en los que la transformación se realice correctamente de forma parcial. Esto significa que Amazon Q solo ha podido transformar determinados archivos o áreas de código del proyecto. En este caso, debe actualizar manualmente el código restante para que el proyecto se pueda compilar en la versión de idioma actualizada.

Para ayudar a transformar el resto del código, puede usar el chat de Amazon Q en el IDE. Puede pedir a Amazon Q que revise los archivos parcialmente actualizados y que proporcione un código nuevo para solucionar problemas, como los errores de compilación. También puedes usar funciones como el desarrollo de funciones y el contexto del espacio de trabajo para incluir más contenido de tu proyecto como contexto y obtener sugerencias para varios archivos a la vez.