

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.

# Transformación de aplicaciones Java con Amazon Q Developer
<a name="transform-java"></a>

**nota**  
AWS Transform custom ya está disponible para las actualizaciones de Java. Inteligencia artificial agencial que gestiona las actualizaciones de versiones, la migración del SDK y mucho más, y mejora con cada ejecución. [Introducción](https://docs.aws.amazon.com/transform/latest/userguide/custom-get-started.html)

Amazon Q es compatible con los siguientes tipos de transformaciones para las aplicaciones Java: 
+ Actualizaciones del lenguaje Java y de las versiones de dependencias
+ Conversión de SQL incrustado para la migración de bases de datos de Oracle a PostgreSQL

Para empezar, consulte el tema correspondiente al tipo de transformación que desea realizar. 

**Topics**
+ [

## Cuotas
](#quotas-java-transformation-ide)
+ [

# Actualización de las versiones de Java con Amazon Q Developer
](code-transformation.md)
+ [

# Conversión de SQL incrustado en aplicaciones Java con Amazon Q Developer
](transform-sql.md)
+ [

# Transformación de código en la línea de comandos con Amazon Q Developer
](transform-CLI.md)
+ [

# Visualización del historial de trabajos de transformación
](transformation-job-history.md)
+ [

# Solución de problemas con las transformaciones de Java
](troubleshooting-code-transformation.md)

## Cuotas
<a name="quotas-java-transformation-ide"></a>

Las transformaciones de aplicaciones Java con Amazon Q en el IDE y en la línea de comandos mantienen las siguientes cuotas: 
+ **Líneas de código por trabajo**: el número máximo de líneas de código que Amazon Q puede transformar en un trabajo de transformación determinado. 
+ **Líneas de código por mes**: el número máximo de líneas de código que Amazon Q puede transformar en un mes. 
+ **Trabajos simultáneos**: el número máximo de trabajos de transformación que puede ejecutar al mismo tiempo. Esta cuota se aplica a todas las transformaciones en el IDE, incluidas las [transformaciones de .NET en Visual Studio](transform-dotnet-IDE.md).
+ **Trabajos por mes**: el número máximo de trabajos de transformación que puede ejecutar en un mes. 


| Recurso | Cuotas | 
| --- | --- | 
| Líneas de código por trabajo | Nivel gratuito: 1000 líneas de código | 
| Líneas de código por mes | Nivel gratuito: 2000 líneas de código | 
| Trabajos simultáneos |  1 trabajo por usuario 25 puestos de trabajo por cuenta AWS   | 
| Trabajos por mes |  Nivel profesional: 1000 trabajos Nivel gratuito: 100 trabajos  | 

# Actualización de las versiones de Java con Amazon Q Developer
<a name="code-transformation"></a>

Amazon Q Developer puede actualizar las aplicaciones de Java a versiones de lenguaje más recientes en el entorno de desarrollo integrado (IDE). Los cambios que Amazon Q puede realizar para actualizar el código incluyen la actualización de componentes de código obsoletos y APIs la actualización de bibliotecas, marcos y otras dependencias del código. 

Para transformar el código, en primer lugar Amazon Q compila el código en la versión del lenguaje de origen y verifica que tenga la información necesaria para realizar la transformación. Una vez que Amazon Q transforme el código correctamente, compruebe y acepte los cambios en el IDE. 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. Para obtener más información acerca de cómo transforma el código Amazon Q, consulte [Cómo transforma Amazon Q Developer el código para las actualizaciones del lenguaje Java](how-CT-works.md).

**Topics**
+ [

## Actualizaciones de Java compatibles y IDEs
](#supported-languages-IDEs)
+ [

## Paso 1: requisitos previos
](#java-upgrade-prerequisites)
+ [

## Paso 2: configuración del proyecto
](#configure-project)
+ [

## Paso 3: creación de un archivo de actualización de dependencias (opcional)
](#create-dependency-upgrade-file)
+ [

## Paso 4: transformación del código
](#transform-code-java)
+ [

# Cómo transforma Amazon Q Developer el código para las actualizaciones del lenguaje Java
](how-CT-works.md)

## Actualizaciones de Java compatibles y IDEs
<a name="supported-languages-IDEs"></a>

Actualmente, Amazon Q es compatible con las siguientes versiones de código fuente y versiones de destino de Java para las transformaciones. La transformación del código a la misma versión de Java incluye la actualización de las bibliotecas y otras dependencias en la versión del código fuente.


**Actualizaciones de Java compatibles**  

| Versión de código fuente | Versiones de destino compatibles | 
| --- | --- | 
| Java 8  | Java 17 y Java 21 | 
| Java 11 | Java 17 y Java 21 | 
| Java 17 | Java 17 y Java 21  | 
| Java 21 |  Java21   | 

Amazon Q admite las siguientes actualizaciones de Java IDEs:
+ Módulos en JetBrains IDEs
+ Proyectos y espacios de trabajo en Visual Studio Code

## Paso 1: requisitos previos
<a name="java-upgrade-prerequisites"></a>

Antes de continuar, asegúrese de que ha completado los pasos en [Configurar Amazon Q en su IDE](q-in-IDE-setup.md).

Asegúrese de que se cumplen los siguientes requisitos previos antes de comenzar el trabajo de transformación de código: 
+ El proyecto está escrito en una [versión de Java compatible](#supported-languages-IDEs) y se basa en Maven.
+ El proyecto se compila correctamente con Maven en su IDE. Maven 3.8 o versiones posteriores son compatibles actualmente. 
+ El JDK de origen del proyecto está disponible localmente y es la versión del código de origen. Por ejemplo, si está transformando el código de Java 8, la instalación local de JDK debería ser JDK 8.
+ Su proyecto se compila en 55 minutos o menos. 
+ El proyecto está configurado correctamente y se ha especificado la versión correcta de JDK. Para obtener más información, consulte [Paso 2: configuración del proyecto](#configure-project).
+ Su proyecto no requiere acceso a los recursos de su red privada, incluida una nube privada virtual (VPC) o una red en las instalaciones. Por ejemplo, si el proyecto contiene pruebas unitarias que se conectan a una base de datos de la red, la transformación fallará.
+ Su proyecto no usa complementos que empaqueten lenguajes distintos de Java en su proyecto de Java. Por ejemplo, si su proyecto utiliza el código de front-end [frontend-maven-plugin](https://github.com/eirslett/frontend-maven-plugin)para ejecutar el JavaScript código de interfaz además del código fuente de Java, la transformación fallará.
+ Su red local permite cargas a los buckets de Amazon S3 que Amazon Q utiliza para transformar el código. Para obtener más información, consulte [Permitir el acceso a los buckets de Amazon S3 en los perímetros de datos](firewall.md#data-perimeters).
+ La aplicación solo usa caracteres UTF-8. Si la aplicación utiliza caracteres distintos de UTF-8, Amazon Q seguirá intentando transformar el código. 

## Paso 2: configuración del proyecto
<a name="configure-project"></a>

Para configurar el proyecto, utilice la siguiente información para el IDE que esté utilizando.

### Configuración de un proyecto en JetBrains
<a name="configure-jetbrains"></a>

Para configurar el proyecto en JetBrains, puede que tenga que especificar los siguientes ajustes del proyecto y del módulo. 

Si los módulos usan el mismo JDK y el mismo nivel de idioma que su proyecto, no necesita actualizar la configuración del módulo.
+ SDK del proyecto: el JDK que se utiliza para compilar el proyecto. 
+ Nivel de lenguaje del proyecto: la versión de Java utilizada en el proyecto.
+ SDK de módulo: el JDK que se utiliza para compilar el módulo. 
+ Nivel de idioma del módulo: la versión de Java utilizada en el módulo. 
+ Maven Runner JRE: el JDK con el que compila el módulo. 

**Actualización de la configuración del proyecto y del módulo**

Para actualizar la configuración de SDK y del nivel de lenguaje de su proyecto o módulo, realice los siguientes pasos:

1. En su IDE de JetBrains, seleccione **Archivo** y, a continuación, **Estructura del proyecto**. 

1. Se abrirá la ventana Estructura del proyecto. En **Configuración del proyecto**, seleccione **Módulos**. 

   1. Para actualizar el JDK del proyecto, selecciónelo en la lista desplegable situada junto a **SDK**. 

   1. Para actualizar el lenguaje del proyecto, elija una opción en el menú desplegable situado junto a **Nivel de lenguaje**. 

1. En **Project Settings**, seleccione **Modules**. 

   1. Para actualizar el JDK del módulo, selecciónelo en la lista desplegable situada junto a **SDK**. 

   1. Para actualizar el lenguaje del módulo, elija una opción en el menú desplegable situado junto a **Nivel de lenguaje**.

Para obtener más información, consulte [Project structure settings](https://www.jetbrains.com/help/idea/project-settings-and-structure.html) y [Module structure settings](https://www.jetbrains.com/help/idea/configure-modules.html) en la documentación de JetBrains.

**Actualización de la configuración de Maven**

Para actualizar el Maven Runner JRE, realice los siguientes pasos:

1. En su IDE de JetBrains, elija el icono del engranaje y, a continuación, seleccione **Configuración** en el menú que aparece. 

1. En la ventana **Configuración**, elija **Compilación, ejecución, implementación**, a continuación, **Herramientas de compilación** y, a continuación, **Maven** y **Runner**.

1. En el campo JRE, elija el JDK utilizado para compilar el módulo que está transformando.

### Configuración de un proyecto en VS Code
<a name="configure-vsc"></a>

Para configurar el proyecto en VS Code, el proyecto debe contener lo siguiente: 
+ Un archivo `pom.xml` en la carpeta raíz del proyecto
+ Un archivo `.java` en el directorio del proyecto

Si su proyecto contiene un ejecutable de contenedor de Maven (`mvnw` para macOS o `mvnw.cmd` para Windows), asegúrese de que esté en la raíz del proyecto. Amazon Q utilizará el contenedor y no será necesaria ninguna otra configuración de Maven.

Si no está utilizando un contenedor de Maven, instale Maven. Para obtener más información, consulte la sección [Installing Apache Maven](https://maven.apache.org/install.html) en la documentación de Apache Maven.

Después de instalar Maven, agréguelo a su variable de `PATH`. Para obtener más información, consulte [¿Cómo agrego Maven a mi `PATH`?](troubleshooting-code-transformation.md#add-maven-to-path). La variable `runtime` de Java también debe apuntar a un JDK y no a un JRE. Para confirmar que la configuración es correcta, ejecute `mvn -v`. El resultado debería mostrar su versión de Maven y la variable `runtime` que apunta a la ruta a su JDK.

## Paso 3: creación de un archivo de actualización de dependencias (opcional)
<a name="create-dependency-upgrade-file"></a>

Puede proporcionar a Amazon Q un *archivo de actualización de dependencias*, un archivo YAML que enumera las dependencias del proyecto y qué versiones deben actualizarse durante una transformación. Al proporcionar un archivo de actualización de dependencias, puede especificar dependencias de terceros y propias que de otro modo puede que Amazon Q no sepa que hay que actualizar.

Las dependencias propias se refieren a las bibliotecas, complementos y marcos que mantiene la organización y que solo están disponibles localmente o en la red privada de la organización. Amazon Q puede acceder a sus dependencias propias cuando realiza compilaciones en el entorno local. Para obtener más información, consulte [Compilación de código en el entorno local](how-CT-works.md#java-local-builds). Las dependencias de terceros están disponibles públicamente o son dependencias de código abierto que no son exclusivas de la organización.

Puede especificar las dependencias propias que desee actualizar en un archivo YAML y Amazon Q las actualizará durante la actualización de JDK (por ejemplo, de Java 8 a 17). Puede iniciar una transformación independiente (de 17 a 17 o de 21 a 21) después de la actualización inicial de JDK para actualizar las dependencias de terceros.

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 le pedirá que proporcione un archivo de actualización de dependencias durante la transformación. Si desea proporcionar uno, primero asegúrese de haber configurado el archivo correctamente. Los siguientes campos son obligatorios en el archivo YAML:
+ name: el nombre del archivo de actualización de dependencias.
+ description (opcional): descripción del archivo de actualización de dependencias y para qué transformación.
+ dependencyManagement: contiene la lista de dependencias y complementos que se van a actualizar.
+ dependencies: contiene el nombre y la versión de las bibliotecas que se van a actualizar.
+ plugins: contiene los nombres y las versiones de los complementos que se van a actualizar.
+ identifier: el nombre de la biblioteca, el complemento u otra dependencia.
+ targetVersion: la versión de la dependencia a la que se va a actualizar.
+ versionProperty (opcional): la versión de la dependencia que está definiendo, tal y como se establece con la etiqueta `properties` del archivo `pom.xml` de la aplicación.
+ originType: si la dependencia es propia o de un tercero, especificado por FIRST\$1PARTY o THIRD\$1PARTY.

A continuación se muestra un ejemplo de un archivo YAML de actualización de dependencias y la configuración necesaria para que Amazon Q lo analice:

```
name: dependency-upgrade
  
description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21"
  
  
dependencyManagement:
  
  dependencies:
  
    - identifier: "com.example:library1"
  
      targetVersion: "2.1.0"
  
      versionProperty: "library1.version"  # Optional
  
      originType: "FIRST_PARTY"   
  
    - identifier: "com.example:library2"
  
      targetVersion: "3.0.0"
  
      originType: "THIRD_PARTY"
  
  plugins:
  
    - identifier: "com.example.plugin"
  
      targetVersion: "1.2.0"
  
      versionProperty: "plugin.version"  # Optional
            
      originType: "THIRD_PARTY"
```

## Paso 4: transformación del código
<a name="transform-code-java"></a>

Para probar la configuración de su IDE, descargue y descomprima el proyecto de ejemplo y realice los siguientes pasos para su IDE. Si puede ver los cambios propuestos y el resumen de la transformación, estará listo para transformar su propio proyecto de código. Si la transformación falla, su IDE no se ha configurado correctamente. Para solucionar los problemas de configuración, revise [Paso 2: configuración del proyecto](#configure-project) y [Resolución de problemas](troubleshooting-code-transformation.md).

**nota**  
No apague, cierre ni ponga la máquina local en reposo durante la transformación del código. La compilación inicial y la de validación utilizan el entorno del cliente, lo que requiere una conexión de red estable. 

Para actualizar la versión de lenguaje del código de su proyecto o módulo de código, realice los siguientes pasos en su IDE.

------
#### [ JetBrains ]

1. Abra el módulo que desea actualizar en JetBrains. Asegúrese de haber compilado correctamente su proyecto en el IDE. 

1. Elige el logotipo de Amazon Q y pide a Amazon Q que transforme tu aplicación en el panel de chat que se abre.

1. Aparece la ventana emergente **Transformar su aplicación**. Elija el proyecto que desea actualizar de la lista desplegable y, a continuación, elija **Transformar**. 

1. Amazon Q le pide que proporcione un archivo de actualización de dependencias. Si ha configurado un YAML con las dependencias y la versión a las que desea realizar la actualización, añada el archivo. Amazon Q validará el archivo para asegurarse de que está configurado correctamente. Si se produce un error, revise el formato y los campos obligatorios descritos en [Paso 3: creación de un archivo de actualización de dependencias (opcional)](#create-dependency-upgrade-file).

1. Amazon Q inicia la transformación. Puede ver el progreso en la pestaña de **Detalles de la transformación**. 

1. Una vez completada la transformación, puede verificar el código actualizado antes de actualizar el proyecto. Para ver el código nuevo, vaya a la pestaña de **Detalles de la transformación** y, a continuación, seleccione **Ver diferencias**. En la ventana **Aplicar parche** que aparece, seleccione un archivo para abrir una vista de diferencias con el código de origen y el código actualizado. 

1. Para aceptar los cambios realizados por Amazon Q, seleccione **Ver diferencias** para abrir la ventana **Aplicar parche**. Seleccione todos los archivos actualizados y seleccione **Aceptar** para actualizar el proyecto en su lugar. 

1. Para obtener detalles sobre cómo se actualizó el código y sugerir los próximos pasos, en la pestaña **Detalles de la transformación**, seleccione **Ver resumen de la transformación**. 

------
#### [ Visual Studio Code ]

1. Abra el proyecto o el espacio de trabajo que desea actualizar en VS Code. Asegúrese de haber compilado correctamente su proyecto en el IDE. 

1. Elige el logotipo de Amazon Q y pide a Amazon Q que transforme tu aplicación en el panel de chat que se abre.

1. Elija el proyecto que desea actualizar en la barra de búsqueda situada en la parte superior del IDE. 

1. Si Amazon Q no encuentra la versión del código de origen, le pedirá que elija la versión del código. Elija la versión en la que está escrito el código de origen y, a continuación, seleccione **Transformar** en la ventana emergente para continuar. 

1. Si se le solicita, introduzca la ruta de `JAVA_HOME` en su JDK. Para obtener más información, consulte [Configurar su proyecto de VS Code](#configure-vsc). 

1. Amazon Q le pide que proporcione un archivo de actualización de dependencias. Si ha configurado un YAML con las dependencias y la versión a las que desea realizar la actualización, añada el archivo. Amazon Q validará el archivo para asegurarse de que está configurado correctamente. Si se produce un error, revise el formato y los campos obligatorios descritos en [Paso 3: creación de un archivo de actualización de dependencias (opcional)](#create-dependency-upgrade-file).

1. Amazon Q inicia la transformación. Puede ver el progreso en la pestaña de **Centro de transformación**. 

1. Una vez completada la transformación, se abre la pestaña **Cambios propuestos**. Para verificar el código actualizado antes de actualizar el proyecto, seleccione **Descargar los cambios propuestos**. Seleccione un archivo para abrir una vista de diferencias con el código de origen y el código actualizado. 

1. Para aceptar los cambios realizados por Amazon Q, vaya a la pestaña **Cambios propuestos** y seleccione **Aceptar**. 

1. Para obtener detalles sobre cómo se actualizó el código y sugerirle los siguientes pasos, en el **Centro de transformaciones**, pulse el botón de puntos suspensivos **Vistas y más acciones** y, a continuación, elija **Mostrar resumen de la transformación**.

------

# Cómo transforma Amazon Q Developer el código para las actualizaciones del lenguaje Java
<a name="how-CT-works"></a>

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
<a name="build-code-create-plan"></a>

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
<a name="transform-code"></a>

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
<a name="java-local-builds"></a>

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
<a name="review-plan-accept-changes"></a>

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
<a name="partially-successful-transformations"></a>

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](q-in-IDE-chat.md#develop-code) [contexto del espacio](workspace-context.md) de trabajo para incluir más contenido de tu proyecto como contexto y obtener sugerencias para varios archivos a la vez. 

# Conversión de SQL incrustado en aplicaciones Java con Amazon Q Developer
<a name="transform-sql"></a>

El agente Amazon Q Developer para la transformación de código en el IDE puede ayudarle a convertir SQL embebido para completar la migración de bases de datos de Oracle a PostgreSQL AWS Database Migration Service con AWS (DMS).

AWS DMS es un servicio en la nube que permite migrar bases de datos relacionales, almacenes de datos, bases de datos NoSQL y otros tipos de almacenes de datos. La conversión de esquemas del DMS en AWS DMS le ayuda a convertir los esquemas de bases de datos y los objetos de código que puede aplicar a la base de datos de destino. [Para obtener más información, consulte ¿Qué es? AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) en la *Guía AWS Database Migration Service del usuario*.

Al utilizar AWS DMS y la conversión de esquemas de DMS para migrar una base de datos, es posible que necesite convertir el SQL incorporado en la aplicación para que sea compatible con la base de datos de destino. En lugar de convertirla manualmente, puede utilizar Amazon Q en el IDE para automatizar la conversión. Amazon Q utiliza los metadatos de una conversión de esquemas de DMS para convertir el SQL incrustado en la aplicación en una versión compatible con la base de datos de destino.

Actualmente, Amazon Q puede convertir SQL en aplicaciones Java para bases de datos Oracle que migran a PostgreSQL. Solo verá la opción de transformar el código SQL en el IDE si la aplicación contiene instrucciones de Oracle SQL. Para obtener más información, consulte los requisitos previos. 

## Paso 1: requisitos previos
<a name="sql-transform-prereqs"></a>

Antes de continuar, asegúrese de que ha completado los pasos en [Configurar Amazon Q en su IDE](q-in-IDE-setup.md).

Antes de comenzar un trabajo de transformación de código para la conversión de SQL, asegúrese de que se cumplen los siguientes requisitos previos:
+ Está migrando una aplicación Java con SQL incrustado de una base de datos Oracle a una base de datos PostgreSQL. Su aplicación debe contener instrucciones de Oracle SQL para que sea apta para la transformación. 
+ Ha completado el proceso de conversión del esquema de base de datos utilizando la conversión de esquemas de AWS DMS. Para obtener más información, consulte [Migrating Oracle databases to Amazon RDS for PostgreSQL with DMS Schema Conversion](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-oracle-postgresql.html) en la *Database Migration Guide*.
+ Una vez finalizada la conversión del esquema, habrá descargado el archivo del proyecto de migración de la consola de AWS DMS.

## Paso 2: configuración de la aplicación
<a name="sql-transform-configure"></a>

Para convertir el código SQL incrustado, el proyecto de Java debe contener al menos un archivo `.java`. 

Si utiliza un JetBrains IDE, debe configurar el campo SDK en la configuración de la estructura del proyecto en el JDK correspondiente. Para obtener información sobre cómo configurar los ajustes de la estructura del [proyecto, consulte los ajustes de la estructura](https://www.jetbrains.com/help/idea/project-settings-and-structure.html) del proyecto en la JetBrains documentación. 

## Paso 3: conversión de SQL incrustado
<a name="convert-sql"></a>

Para convertir el código SQL incrustado en su aplicación Java a un formato compatible con su base de datos de destino PostgreSQL, siga estos pasos:

1. En el IDE donde está instalado Amazon Q, abra el código base de Java que contiene el SQL incrustado que necesita convertir. 

1. Elija el icono de Amazon Q para abrir el panel de chat. 

1. Pide a Amazon Q que transforme tu aplicación en el panel de chat.

1. Si su aplicación Java es apta para la conversión a SQL, Amazon Q le pedirá que elija el tipo de transformación que desea realizar. Escriba **SQL conversion**. 

1. Amazon Q le pide que cargue el archivo de metadatos del esquema que ha recuperado de Amazon S3. En el chat, Amazon Q proporciona instrucciones para recuperar el archivo. 

1. Amazon Q le pide que proporcione el proyecto que contiene el SQL incrustado y el archivo de esquema de la base de datos. Elija los archivos adecuados en los menús desplegables del panel de chat.

1. Confirme que los detalles que Amazon Q ha recuperado del esquema de la base de datos son correctos. 

1. Amazon Q comienza a convertir el código SQL. Esto podría tardar unos minutos.

1. Una vez que Amazon Q convierte el código SQL, proporciona una vista de diferencias con las actualizaciones que haya realizado en los archivos. Revise los cambios en la vista de diferencias y, a continuación, acéptelos para actualizar el código. 

   Amazon Q también proporciona un resumen de la transformación con detalles sobre los cambios que ha realizado.

1. Tras actualizar el código, vuelva a la consola del AWS DMS para comprobar que el nuevo SQL es compatible con la base de datos migrada. 

# Transformación de código en la línea de comandos con Amazon Q Developer
<a name="transform-CLI"></a>

Puede transformar sus aplicaciones desde la línea de comandos con la herramienta de transformación de línea de comandos de Amazon Q Developer. Para transformar el código, debe proporcionar la ruta al código fuente y a los archivos de configuración necesarios y Amazon Q genera el nuevo código en una serie de pasos. A lo largo de la transformación, Amazon Q compila código en su entorno local para verificar los cambios. Para obtener más información, consulte [Compilación de código en el entorno local](#local-builds). Amazon Q crea una nueva ramificación en el repositorio donde confirma los cambios de código. Cuando se complete la transformación, puede combinar la ramificación con la ramificación original para incorporar los cambios en su código base. 

Para empezar, instale la herramienta de línea de comandos y autentíquese y, a continuación, consulte los comandos para configurar e iniciar una transformación. 

**Topics**
+ [

## Compilación de código en el entorno local
](#local-builds)
+ [

## Comandos
](#commands)
+ [

# Ejecución de una transformación en la línea de comandos con Amazon Q Developer
](run-CLI-transformations.md)
+ [

# Solución de problemas de transformaciones en la línea de comandos
](troubleshooting-CLI-transformations.md)
+ [

# Historial de versiones de la herramienta de transformación de línea de comandos de Amazon Q Developer
](transform-CLI-versions.md)

## Compilación de código en el entorno local
<a name="local-builds"></a>

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.

**nota**  
Amazon Q realiza transformaciones en función de las solicitudes, las descripciones y el contenido del proyecto. Para mantener la seguridad, evite incluir artefactos externos no verificados en el repositorio del proyecto y valide siempre el código transformado para garantizar su funcionalidad y seguridad.

## Comandos
<a name="commands"></a>

Para step-by-step obtener instrucciones sobre cómo ejecutar estos comandos, consulte[Ejecución de una transformación en la línea de comandos con Amazon Q Developer](run-CLI-transformations.md). 

Para configurar una transformación y autenticarse en Amazon Q Developer Pro, ejecute:

```
qct configure
```

Para iniciar una transformación para una actualización de Java, ejecute el siguiente comando. Para*<your-source-java-version>*, puede escribir`JAVA_1.8`,`JAVA_8`, `JAVA_11``JAVA_17`, o`JAVA_21`. Para*<your-target-java-version>*, puede introducir una `JAVA_17` o`JAVA_21`. Los parámetros `--source_version` y `--target_version` son opcionales. El indicador `--trust` permite que se ejecute una transformación mientras se verifica el código para mantener la seguridad.

```
qct transform --source_folder <path-to-folder>
    --source_version <your-source-java-version>        
    --target_version <your-target-java-version>
    --trust
```

Para iniciar una transformación para una conversión de SQL, ejecute:

```
qct transform --source_folder <path-to-folder>
    --sql_conversion_config_file <path-to-sql-config-file>
```

Para ver qué versión de la herramienta de línea de comandos para la transformación está utilizando, ejecute:

```
qct -v
```

Para obtener ayuda con las transformaciones, ejecute:

```
qct -h
```

Para ver el historial de sus trabajos de transformación, ejecute:

```
qct history
```

Para obtener más información sobre cómo ver y administrar el historial de trabajos de transformación, consulte [Visualización del historial de trabajos en la línea de comandos](transformation-job-history.md#cli-job-history).

# Ejecución de una transformación en la línea de comandos con Amazon Q Developer
<a name="run-CLI-transformations"></a>

Realice estos pasos para transformar el código en la línea de comandos con la herramienta de línea de comandos de Amazon Q Developer.

## Requisitos previos
<a name="CLI-transformation-prerequisites"></a>

Antes de iniciar una transformación en la línea de comandos, se deben cumplir los siguientes requisitos previos:
+ Si está actualizando su versión de código de Java, el proyecto cumple los [requisitos previos para actualizar las versiones de Java con Amazon Q](code-transformation.md#java-upgrade-prerequisites).
+ Si está convirtiendo SQL incrustado en una aplicación Java, la aplicación cumple los [requisitos previos para convertir SQL incrustado con Amazon Q](transform-sql.md#sql-transform-prereqs).
+ Tiene Python instalado en el entorno de línea de comandos. Así es como instalará la herramienta de línea de comandos. La versión de Phyton mínima compatible es 3.12.
+ Está ejecutando la transformación en macOS o Linux. 
+ El tamaño de la aplicación es de 2 GB o menos. 
+ Si tiene dependencias específicas que desea que Amazon Q actualice, ha configurado un [archivo de actualización de dependencias](#step-3-dependency-upgrade-file).

## Paso 1: elección del método de autenticación y añadido de permisos
<a name="step-1-permissions-auth"></a>

Puede autenticar IAM Identity Center para ejecutar transformaciones en la línea de comandos. Asegúrese de disponer de los permisos necesarios.

**nota**  
Las claves administradas por el cliente no son compatibles con las transformaciones realizadas en la línea de comandos.

### Inclusión de permisos
<a name="transform-CLI-add-permissions"></a>

La identidad de IAM asociada a la suscripción de Amazon Q Developer que utilice para autenticarse debe contar con permisos para realizar transformaciones en la línea de comandos. Antes de continuar, asegúrese de que su identidad de IAM tiene los permisos definidos en [Permiso a los usuarios para ejecutar transformaciones en la línea de comandos](id-based-policy-examples-users.md#id-based-policy-examples-allow-cli-transformations).

### Autenticación con IAM Identity Center mediante una suscripción a Amazon Q Developer
<a name="auth-IdC"></a>

Para autenticarse con IAM Identity Center, su administrador debe [suscribirlo a Amazon Q Developer Pro como usuario de personal](subscribe-users.md) y debe proporcionar la URL de inicio para autenticarse mediante la suscripción. Usted o su administrador pueden encontrar la URL de inicio en la consola de Amazon Q Developer. Para obtener más información, consulte [Búsqueda de la URL de inicio para el uso con Amazon Q Developer](manage-account-details.md).

Para añadir los permisos necesarios, consulte [Inclusión de permisos](#transform-CLI-add-permissions).

Se introduce la URL de inicio en [Paso 4: configuración y autenticación](#step-4-configure-auth).

## Paso 2: instalación de la herramienta
<a name="step-2-install"></a>



1. [Descargue la herramienta de línea de comandos de Amazon Q para realizar transformaciones](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.2.zip) y descomprímala.

   Para descargar una versión anterior de la herramienta de línea de comandos, consulte [Historial de versiones](transform-CLI-versions.md).

1. Se recomienda configurar un entorno virtual en Python para instalar la herramienta. Para crear un entorno virtual, abra una ventana de terminal en el directorio donde desea instalar la herramienta y ejecute:

   ```
   python -m venv qct-cli 
   ```

1. Para activar el entorno virtual, ejecute: 

   ```
   source qct-cli/bin/activate 
   ```

1. Para instalar la herramienta en la línea de comandos, ejecute el siguiente comando con la ruta en la que descomprimió la herramienta, según la arquitectura de su máquina:

------
#### [ Linux\$1aarch64 ]

   ```
   pip install <path/to/unzipped-tool>/Linux_aarch64/amzn_qct_cli-1.2.2-py3-none-any.whl
   ```

------
#### [ Linux\$1x86\$164 ]

   ```
   pip install <path/to/unzipped-tool>/Linux_x86_64/amzn_qct_cli-1.2.2-py3-none-any.whl
   ```

------
**nota**  
Si está utilizando una versión anterior de la herramienta de línea de comandos para las transformaciones, reemplace `1.2.2` con la [versión](transform-CLI-versions.md) que descargó.

1. Para comprobar que la herramienta se ha instalado, ejecute:

   ```
   which qct
   ```

## Paso 3: creación de un archivo de actualización de dependencias (opcional)
<a name="step-3-dependency-upgrade-file"></a>

Puede proporcionar a Amazon Q un *archivo de actualización de dependencias*, un archivo YAML que enumera las dependencias del proyecto y qué versiones deben actualizarse durante una transformación. Al proporcionar un archivo de actualización de dependencias, puede especificar dependencias de terceros y propias que de otro modo puede que Amazon Q no sepa que hay que actualizar.

Las dependencias propias se refieren a las bibliotecas, complementos y marcos que mantiene la organización y que solo están disponibles localmente o en la red privada de la organización. Amazon Q puede acceder a sus dependencias propias cuando realiza compilaciones en el entorno local. Para obtener más información, consulte [Compilación de código en el entorno local](transform-CLI.md#local-builds). Las dependencias de terceros están disponibles públicamente o son dependencias de código abierto que no son exclusivas de la organización.

Puede especificar las dependencias propias que desee actualizar en un archivo YAML y Amazon Q las actualizará durante la actualización de JDK (por ejemplo, de Java 8 a 17). Puede iniciar una transformación independiente (de 17 a 17 o de 21 a 21) después de la actualización inicial de JDK para actualizar las dependencias de terceros.

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 le pedirá que proporcione un archivo de actualización de dependencias durante la transformación. Si desea proporcionar uno, primero asegúrese de haber configurado el archivo correctamente. Los siguientes campos son obligatorios en el archivo YAML:
+ name: el nombre del archivo de actualización de dependencias.
+ description (opcional): descripción del archivo de actualización de dependencias y para qué transformación.
+ dependencyManagement: contiene la lista de dependencias y complementos que se van a actualizar.
+ dependencies: contiene el nombre y la versión de las bibliotecas que se van a actualizar.
+ plugins: contiene los nombres y las versiones de los complementos que se van a actualizar.
+ identifier: el nombre de la biblioteca, el complemento u otra dependencia.
+ targetVersion: la versión de la dependencia a la que se va a actualizar.
+ versionProperty (opcional): la versión de la dependencia que está definiendo, tal y como se establece con la etiqueta `properties` del archivo `pom.xml` de la aplicación.
+ originType: si la dependencia es propia o de un tercero, especificado por FIRST\$1PARTY o THIRD\$1PARTY.

A continuación se muestra un ejemplo de un archivo YAML de actualización de dependencias y la configuración necesaria para que Amazon Q lo analice:

```
name: dependency-upgrade
  
description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21"
  
  
dependencyManagement:
  
  dependencies:
  
    - identifier: "com.example:library1"
  
      targetVersion: "2.1.0"
  
      versionProperty: "library1.version"  # Optional
  
      originType: "FIRST_PARTY"   
  
    - identifier: "com.example:library2"
  
      targetVersion: "3.0.0"
  
      originType: "THIRD_PARTY"
  
  plugins:
  
    - identifier: "com.example.plugin"
  
      targetVersion: "1.2.0"
  
      versionProperty: "plugin.version"  # Optional
            
      originType: "THIRD_PARTY"
```

## Paso 4: configuración y autenticación
<a name="step-4-configure-auth"></a>

Antes de comenzar una transformación, debe autenticarse en IAM Identity Center y proporcionar los detalles de configuración de la transformación. 

1. Para iniciar el proceso de configuración de la transformación, ejecute el siguiente comando:

   ```
   qct configure
   ```

1. Se le pedirá que introduzca una ruta de JDK para cada versión de Java compatible. Solo necesita especificar la ruta al JDK de la versión de origen de la aplicación Java, no de la versión de destino.

1. A continuación, para autenticarse en IAM Identity Center, se le pedirá que introduzca la URL de inicio del perfil de suscripción a Amazon Q Developer Pro.

   Luego, ingrese el Región de AWS lugar al que se suscribió en el siguiente formato:`us-east-1`. Para obtener una lista de las regiones admitidas, consulte [Regiones compatibles](regions.md). Para obtener una lista de códigos de región, consulte [Puntos de conexión regionales](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) en la *Guía de Referencia general de AWS *. 

1. Sus preferencias de configuración se guardan en un archivo configuration.ini. 

## Paso 5: ejecución de una transformación
<a name="step-5-run-transformation"></a>

Elija el tipo de transformación que va a realizar para ver la configuración y los comandos necesarios. 

**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.

------
#### [ Java upgrade ]

**Modificación del plan de transformación**

Durante las actualizaciones de las versiones de Java, Amazon Q genera un plan de transformación que puede revisar antes de que comience la transformación. Tiene la opción de solicitar los siguientes cambios en el plan:
+ Qué bibliotecas actualiza Amazon Q, de la lista incluida en el plan
  + Ejemplos de peticiones:
    + Solo actualice <dependencia1>, <dependencia2> y <dependencia5>
    + No actualice <dependencia1> ni <dependencia2>
+ La versión de destino a la que se va a actualizar una biblioteca
  + Ejemplos de peticiones:
    + Actualice <dependencia> a esta versión en su lugar <versión>
+ Qué pasos debe realizar Amazon Q
  + Ejemplos de peticiones:
    + Realice únicamente los pasos 1 a 7
    + No ejecute los pasos 5 a 9
+ Añada dependencias adicionales para actualizar (solo es una opción cuando se actualiza a una versión más reciente de JDK)
  + Ejemplos de peticiones:
    + Actualice también <dependencia1> a <versión2>

**Actualización de código Java**

1. Ejecute el siguiente comando para iniciar una transformación para una actualización de Java. Reemplace `<path-to-folder>` con la ruta a la carpeta con el código que está transformando y `<your-target-java-version>` con `JAVA_17` o `JAVA_21`.

   ```
   qct transform --source_folder <path-to-folder>
       --target_version <your-target-java-version>
   ```

   Opciones de comandos adicionales: 
   + Si está especificando las dependencias que desea actualizar, añada la opción `--dependency_upgrade_file` con la ruta al archivo de actualización de dependencias.
   + Si no desea revisar o actualizar el plan de transformación, añada el indicador `--no-interactive` a su comando. Amazon Q no le pedirá comentarios sobre el plan y no tendrá la oportunidad de solicitar cambios.

1. La versión de Maven se verifica antes de que comience la transformación. Si tiene al menos la versión mínima compatible, obtendrá el siguiente resultado: 

   ```
   Running command: mvn --version at: path/to/current/directory 
   Your Maven version is supported for transformations.
   ```

   Si no tiene una versión compatible de Maven, debe actualizarla para continuar. Para obtener más información, consulte la [Requisitos previos](#CLI-transformation-prerequisites). 

1. Si no ha añadido el indicador `--no-interactive`, Amazon Q le pedirá que dé su opinión sobre el plan de transformación. Puede explicar los cambios que desea realizar en inglés y Amazon Q actualizará el plan si puede admitir los cambios que solicite. 

1. Amazon Q inicia la transformación. Generará actualizaciones de estado a lo largo de la transformación. Cuando finaliza, Amazon Q proporciona la ruta en la que se generan los resultados de la transformación, los registros y los archivos de configuración. 

   El código actualizado se confirmará para la nueva ramificación que ha creado Amazon Q. Amazon Q confirmará el código en una o varias confirmaciones, en función de la selección que haya realizado al ejecutar `qct configure`. 

1. Si está ejecutando otra transformación después de actualizar su versión de Java, inicie la segunda transformación en la misma ramificación en la que confirmó los cambios de la primera transformación. 

------
#### [ SQL conversion ]

Antes de empezar, asegúrese de haber leído [Conversión de SQL incrustado en aplicaciones Java con Amazon Q Developer](transform-sql.md) para entender los requisitos previos de este tipo de transformación para conocerlos. 

1. Para convertir SQL incrustado, primero debe crear un archivo YAML que contenga la ruta al archivo de metadatos del esquema desde la [Conversión de esquema de AWS DMS](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-oracle-postgresql.html).

   El archivo debe tener el siguiente formato: 

   ```
   schema_conv_metadata_path: <path-to-metadata-zip-file>
   ```

1. Ejecute el siguiente comando para iniciar una transformación para una conversión de SQL. Reemplace `<path-to-folder>` con la ruta a la carpeta con el código que está transformando y `<path-to-sql-config-file>` con la ruta al archivo YAML que ha creado en el paso 1.

   ```
   qct transform --source_folder <path-to-folder>
       --sql_conversion_config_file <path-to-sql-config-file>
   ```

1. Si Amazon Q encuentra varios esquemas en el archivo de metadatos del esquema, detendrá la transformación y proporcionará una lista de los esquemas detectados. Elija el esquema que desea utilizar para la conversión de SQL y, a continuación, añada un campo nuevo `schema: <schema-name>` al archivo YAML. 

1. Amazon Q inicia la transformación. Generará actualizaciones de estado a lo largo de la transformación. Cuando finaliza, Amazon Q proporciona la ruta en la que se generan los resultados de la transformación, los registros y los archivos de configuración. 

   El código actualizado se confirmará para la nueva ramificación que ha creado Amazon Q.

------

## Pausa o cancelación de una transformación
<a name="pause-cancel-CLI-transformations"></a>

Puede optar por pausar o cancelar el trabajo de transformación actual. Puede pausar un trabajo de transformación durante un máximo de 12 horas antes de poder reanudarlo.

**Cómo pausar o cancelar un trabajo de transformación de código**

1. En el terminal de la CLI, pulse **Ctrl\$1C** en el teclado.

1. Seleccione si desea pausar o cancelar la transformación.
   + Introduzca `1` si desea pausar el trabajo de transformación de código. Puede reanudar el trabajo en 12 horas para continuar con la transformación del código mediante el siguiente comando de QCT: ``qct transform --source_folder=≤/Path/Given/Originally/To/QCT>``.
   + Introduzca `2` si desea cancelar el trabajo de transformación de código.

# Solución de problemas de transformaciones en la línea de comandos
<a name="troubleshooting-CLI-transformations"></a>

La siguiente información puede ayudarle a solucionar problemas habituales al transformar aplicaciones en la línea de comandos con Amazon Q Developer.

## ¿Por qué el token de portador no se actualiza?
<a name="bearer-token-refresh"></a>

Si aparece el siguiente error, significa que debe actualizar el token de portador utilizado para la autenticación.

```
Refreshing bearer token
('Error refreshing bearer token due to: ', InvalidGrantException('An error occurred (InvalidGrantException) when calling the CreateToken operation: '))
('Error getting bearer token due to: ', RuntimeError(('Error refreshing bearer token due to: ', InvalidGrantException('An error occurred (InvalidGrantException) when calling the CreateToken operation: '))))
```

Para corregir este error, ejecute el siguiente comando:

```
rm ~/.aws/qcodetransform/credentials.json
```

Una vez que haya eliminado el archivo de credenciales obsoleto, vuelva a ejecutar `qct transform` para reiniciar la transformación.

## ¿Por qué no se utiliza la versión más reciente de la herramienta de línea de comandos?
<a name="install-latest-version"></a>

Al descargar una nueva versión de la herramienta de línea de comandos para realizar transformaciones, a veces se sigue utilizando una versión anterior de la herramienta.

Para asegurarse de que se utilice la versión más reciente de la herramienta, descargue la [versión más reciente](transform-CLI-versions.md). A continuación, ejecute el siguiente comando con la ruta en la que ha descomprimido la herramienta, según la arquitectura de la máquina:

------
#### [ Linux\$1aarch64 ]

```
pip install <path/to/unzipped-tool>/Linux_aarch64/amzn_qct_cli-1.2.2-py3-none-any.whl --force-reinstall
```

------
#### [ Linux\$1x86\$164 ]

```
pip install <path/to/unzipped-tool>/Linux_x86_64/amzn_qct_cli-1.2.2-py3-none-any.whl --force-reinstall
```

------

**nota**  
Si utiliza una versión anterior de la herramienta de línea de comandos para las transformaciones, reemplace `1.2.2` con la [versión](transform-CLI-versions.md) que ha descargado.

# Historial de versiones de la herramienta de transformación de línea de comandos de Amazon Q Developer
<a name="transform-CLI-versions"></a>

Consulte la siguiente información para obtener detalles sobre las versiones actuales y anteriores de la herramienta de transformación de línea de comandos de Amazon Q Developer. La tabla incluye el enlace de descarga, la fecha de la versión y las notas de cada versión. 


****  

| Versión | Fecha de publicación | Notas de la versión | 
| --- | --- | --- | 
|   [1.2.2 (más reciente)](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.2.zip)   | 26 de febrero de 2026 | Se agregó un banner promocional para AWS Transform personalizado a la CLI de QCT. Se muestra un banner sobre la ejecución del comando Transform y el texto de ayuda. Nueva marca --skip-banner para suprimir la salida de banners. | 
|   [1.2.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.1.zip)   | 9 de septiembre de 2025 | Se actualizó la extensión de Maven para incluir a un padre propio POMs durante la carga inicial del proyecto | 
|   [1.2.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.0.zip)   | 7 de agosto de 2025 | Se añadió compatibilidad para ver el historial de trabajos y para la visualización de la estructura de los módulos para los proyectos Java de Maven. | 
|   [1.1.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.1.0.zip)   | 21 de julio de 2025 | Incluye compatibilidad para recopilar telemetría sobre las transformaciones. | 
|   [1.0.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.0.0.zip)   | 27 de junio de 2025 | La herramienta de transformación de la línea de comandos está disponible de forma general y solo admite la autenticación a través del AWS IAM Identity Center con una suscripción a Amazon Q Developer Pro. Se añadió compatibilidad para suscripciones en la región de Europa (Fráncfort). | 
|   [0.6.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.6.0.zip)   | 6 de junio de 2025 | Incluye compatibilidad para proporcionar un archivo de actualización de dependencias e iterar el plan de transformación. | 
|   [0.5.2](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.2.zip)   | 16 de abril de 2025 | Correcciones de errores para resolver problemas al reanudar los trabajos y errores en aplicaciones con dependencias propias. | 
|   [0.5.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.1.zip)   | 13 de marzo de 2025 | Al autenticarse con IAM, ya no es necesario proporcionar una Región de AWS. También incluye una corrección de errores para incluir el estado del trabajo en los registros de salida.  | 
|   [0.5.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.0.zip)   | 28 de febrero de 2025 | Incluye soporte para autenticarse con IAM a través del. AWS CLI | 
|   [0.4.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.4.1.zip)   | 17 de febrero de 2025 | Se ha corregido un error para incluir la posibilidad de introducir el Región de AWS lugar donde está configurada tu suscripción de Amazon Q Developer. | 
|   [0.4.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.4.0.zip)   | 14 de febrero de 2025 | Incluye compatibilidad para actualizar aplicaciones Java a Java 21. | 
|   [0.3.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.3.0.zip)   | 12 de febrero de 2025 | Incluye compatibilidad para convertir SQL incrustado en aplicaciones Java. | 
|   [0.2.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.2.0.zip)   | 3 de febrero de 2025 | Incluye compatibilidad para recibir código Java actualizado en múltiples confirmaciones. | 
|  [0.1.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.1.0.zip)  | 27 de noviembre de 2024 | Versión inicial. Incluye compatibilidad para actualizar versiones de código Java desde la línea de comandos. | 

# Visualización del historial de trabajos de transformación
<a name="transformation-job-history"></a>

Amazon Q proporciona una visión general completa de su historial de trabajos de transformación de Java, lo que le permite realizar un seguimiento y revisar sus trabajos de transformación tanto en los IDE como en la línea de comandos.

El historial de trabajos de transformación incluye la siguiente información sobre un trabajo:
+ **Fecha**: fecha en la que se ejecutó el trabajo de transformación
+ **Nombre del proyecto**: el nombre del proyecto que se transformó
+ **Estado**: el estado actual del trabajo de transformación
+ **Duración**: cuánto tiempo tardó en realizarse la transformación
+ **ID de trabajo**: un identificador único para el trabajo de transformación
+ **Parche de diferencias**: enlace o ruta al archivo final del parche de diferencias en el que se muestran todos los cambios de código
+ **Resumen**: enlace o ruta al archivo de resumen de la transformación con detalles sobre los cambios realizados

**nota**  
En el historial de trabajos solo estarán disponibles las transformaciones ejecutadas desde el lanzamiento de esta característica. Para conocer la fecha de lanzamiento de la característica, consulte [Historial de revisión de la Guía del usuario de Amazon Q Developer](doc-history.md). 

## Visualización del historial de trabajos en IDE
<a name="ide-job-history"></a>

**nota**  
Esta característica está disponible actualmente solo en Visual Studio Code.

El Centro de transformación en Visual Studio Code proporciona una visión completa de su historial de trabajos de transformación de Java. 

En una tabla del Centro de transformación se enumeran los 10 trabajos de transformación más recientes de los últimos 30 días. En la tabla, puede acceder a los artefactos de transformación y actualizar los trabajos para hacer un seguimiento del progreso y encontrar los artefactos que faltan.

### Recuperación de artefactos de transformación
<a name="retrieve-artifacts"></a>

Puede acceder a los artefactos de transformación, como los parches de diferencias y los archivos de resumen, desde la tabla del historial de trabajos. Elija los enlaces adecuados para abrir el archivo de diferencias o el resumen en su IDE.

Los artefactos se almacenan localmente en el directorio de `.aws/transform`, por lo que también puede acceder a los artefactos de transformación descargados previamente de trabajos anteriores.

### Actualización del estado del trabajo
<a name="refresh-jobs"></a>

Puede actualizar el estado del trabajo desde la tabla del historial de trabajos. Actualice un trabajo con errores para obtener un estado actualizado del servidor que puede que aún no haya llegado al servidor, por ejemplo, cuando Amazon Q puede reanudar un trabajo fallido. También puede actualizar los trabajos completados para descargar artefactos que quizás no hayan aparecido todavía. 

### Cómo se almacena el historial de los trabajos que se ejecutan en el IDE
<a name="ide-history-storage"></a>

Para Visual Studio Code, toda la información y los artefactos de los trabajos de transformación se almacenan localmente en el directorio de `.aws/transform`. El almacenamiento se organiza de la siguiente manera:

```
.aws/transform/
├── [project-name-1]/
│   ├── [job-id-1]/
│   │   ├── diff.patch
│   │   ├── [summary-1]/
│   │   │   └── summary.md
│   │   │   └── buildCommandOutput.log
│   └── [job-id-2]/
│       ├── diff.patch
│       ├── [summary-2]/
│       │   └── summary.md
│       │   └── buildCommandOutput.log
└── [project-name-2]/
    └── [job-id-3]/
        ├── diff.patch
        ├── [summary-3]/
        │   └── summary.md
        │   └── buildCommandOutput.log
```

## Visualización del historial de trabajos en la línea de comandos
<a name="cli-job-history"></a>

En el caso de las transformaciones en la línea de comandos, el comando **qct history** proporciona acceso al historial de trabajos de transformación con opciones de personalización.

Para la CLI, la información del historial de los trabajos de transformación se almacena localmente en el directorio de `.aws/qcodetransform/history/`.

### Uso del comando qct history
<a name="cli-history-command"></a>

El comando básico para ver el historial de sus trabajos de transformación es:

```
qct history
```

De forma predeterminada, este comando muestra los 10 trabajos de transformación más recientes, además de los trabajos pausados o en curso.

También puede especificar cuántas entradas del historial de trabajos se mostrarán con el indicador **--limit**. Por ejemplo, para mostrar 20 trabajos, ejecute:

```
qct history --limit 20
```

# Solución de problemas con las transformaciones de Java
<a name="troubleshooting-code-transformation"></a>

La siguiente información puede ayudarle a solucionar problemas habituales al transformar aplicaciones de Java con Amazon Q Developer.

**Topics**
+ [

## ¿Por qué Amazon Q no puede subir mi proyecto?
](#project-upload-fail)
+ [

## ¿Por qué fallan mis comandos Maven?
](#maven-commands-failing)
+ [

## ¿Cómo agrego Maven a mi `PATH`?
](#add-maven-to-path)
+ [

## ¿Por qué Amazon Q no puede compilar mi código?
](#build-fail)
+ [

## ¿Por qué ha fallado mi transformación después de 55 minutos?
](#build-time-limit)
+ [

## ¿Por qué no puedo descargar el código transformado?
](#download-code-fail)
+ [

## ¿Cómo puedo acceder a los registros de transformación del código?
](#logs)
+ [

## ¿Cómo puedo encontrar mi ID de trabajo de transformación?
](#job-id)

## ¿Por qué Amazon Q no puede subir mi proyecto?
<a name="project-upload-fail"></a>

Si su proyecto no se puede cargar, es probable que se deba a uno de los siguientes problemas. Consulte el tema correspondiente al error que vea en Amazon Q. 

**Topics**
+ [

### Reducción del tamaño del proyecto
](#reduce-project-size)
+ [

### Configuración de los ajustes del proxy en su IDE
](#configure-proxy)
+ [

### Permiso para acceder a Amazon S3
](#allowlist-s3-bucket)

### Reducción del tamaño del proyecto
<a name="reduce-project-size"></a>

Para transformar el código, Amazon Q genera un artefacto del proyecto, que incluye el código de origen, las dependencias del proyecto y los registros de compilación. El tamaño máximo del artefacto del proyecto para un trabajo de transformación es de 2 GB. Si recibe un error relacionado con el tamaño del artefacto del proyecto, debe reducir el tamaño del proyecto o intentar transformar un proyecto más pequeño. Puede ver el tamaño del archivo del artefacto del proyecto en los registros de transformación de código. Para obtener más información, consulte [¿Cómo puedo acceder a los registros de transformación del código?](#logs)

### Configuración de los ajustes del proxy en su IDE
<a name="configure-proxy"></a>

Para transformar el código, Amazon Q carga el artefacto del proyecto en un bucket de Amazon S3 propiedad del servicio. Parte del proceso de carga implica el uso de certificados SSL o TLS para establecer la comunicación entre Amazon S3 y su IDE. Si utiliza un servidor proxy, los certificados SSL o TLS utilizados por el servidor proxy deben ser de confianza; de lo contrario, Amazon Q no podrá cargar el proyecto. 

Si recibe un error relacionado con su proxy o los certificados, probablemente necesite configurar su IDE o sistema operativo para que confíe en sus certificados o actualizar otros ajustes del proxy.

**nota**  
Si está protegido por el servidor proxy o el firewall de su organización, también podrían surgir problemas no relacionados con los certificados. Si realiza los siguientes procedimientos para configurar los certificados y sigue teniendo problemas, póngase en contacto con el administrador de la red para asegurarse de que puede comunicarse con Amazon S3 desde su IDE. Para obtener más información, consulte [Permiso para acceder a Amazon S3](#allowlist-s3-bucket). 

#### Configuración de los certificados en JetBrains
<a name="configure-proxy-JB"></a>

Para configurar su Entorno de ejecución de Java (JRE) de IDE de JetBrains para que confíe en los certificados SSL o TLS que utiliza su servidor proxy, debe importar los certificados SSL o TLS al archivo `cacerts` del JRE. El archivo `cacerts` contiene certificados raíz de confianza para conexiones seguras, como HTTPS y SSL, y forma parte de la configuración de seguridad del JRE. Para importar un certificado, realice el siguiente procedimiento. 

**nota**  
Se recomienda hacer una copia de seguridad del archivo `cacerts` antes de modificarlo, ya que cualquier error puede provocar problemas con las conexiones seguras.

1. Determine la ruta al archivo `cacerts` en su JRE. La ruta del archivo `cacerts` en el JRE interno que se incluye con el IDE de JetBrains depende del sistema operativo y de la versión del IDE de JetBrains que utilice. 

   A continuación, se muestran ejemplos de rutas al archivo `cacerts` en los sistemas operativos más comunes. Seleccione su sistema operativo para ver ejemplos.
**nota**  
 `<JetBrains Installation Folder>` hace referencia al directorio en el que están instalados los productos JetBrains. Este directorio se elige normalmente durante el proceso de instalación.  
La `jbr` carpeta representa el JRE incluido JetBrains IDEs, que es una versión específica del JRE diseñada para su uso con. JetBrains IDEs

------
#### [ Windows ]

   La ruta del archivo `cacerts` de un IDE de JetBrains instalado en Windows es:

   ```
   <JetBrains Installation Folder>\jbr\bin\cacerts
   ```

   Por ejemplo, si ha instalado un IDE de JetBrains en Windows en la ubicación predeterminada, la ruta podría ser:

   ```
   C:\Program Files\JetBrains\jbr\bin\cacerts
   ```

------
#### [ macOS ]

   La ruta del archivo `cacerts` de un IDE de JetBrains instalado en macOS es:

   ```
   /Applications/JetBrains Toolbox/<version>/JetBrains Toolbox.app/Contents/jbr/Contents/Home/lib/security/cacerts
   ```

   Por ejemplo, si ha instalado un IDE de JetBrains en macOS en la ubicación predeterminada, la ruta podría ser:

   ```
   /Applications/JetBrains Toolbox/2022.3.4/JetBrains Toolbox.app/Contents/jbr/Contents/Home/lib/security/cacerts
   ```

------
#### [ Linux ]

   La ruta del archivo `cacerts` de un IDE de JetBrains instalado en Linux es:

   ```
   /opt/jetbrains/jbr/lib/security/cacerts
   ```

------

1. Determine el certificado que necesita importar al archivo `cacerts`. El archivo de certificado suele tener una extensión de archivo `.cer`, `.crt` o `.der`. Si no está seguro de qué certificados debe agregar, póngase en contacto con el administrador de la red.

1. Importe el certificado firmado al almacén de claves de `cacerts`. Puede hacerlo con el comando de `keytool` de Java. 

   1. Abra un símbolo del sistema y escriba el comando siguiente:

      ```
      keytool -import -alias <alias> -file <certificate_file> -keystore <path_to_cacerts>
      ```

   1. Para `<alias>`, puede añadir un nombre al certificado que va a importar para consultarlo más adelante. Esta opción es opcional.

   1. Para `<certificate_file>`, especifique la ruta de acceso al certificado que va a importar. Debe ser una ruta al archivo `.cer`, `.crt` o `.der` que contiene el certificado.

   1. Para `<path_to_cacerts>`, especifique la ruta al archivo de almacén de claves de `cacerts` que guardó en el paso 1. Este es el archivo donde va a importar el certificado. 

   Por ejemplo, si desea importar un certificado llamado `my_certificate.cer` al almacén de claves de `cacerts` del JRE incluido en IntelliJ IDEA en Windows y desea asignar el alias `myalias` al certificado, el comando podría ser:

   ```
   keytool -import -alias myalias -file my_certificate.cer -keystore "C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.2\jbr\bin\cacerts"
   ```

1. Durante el proceso de importación, se le pedirá que introduzca la contraseña del almacén de claves. La contraseña predeterminada para el almacén de claves de `cacerts` es `changeit`. 

1. Tras ejecutar el comando, se le pedirá que confíe en el certificado. Para confirmar que el certificado es de confianza y completar la importación, introduzca `yes`.

1. Es posible que también necesite agregar los certificados al propio IDE, además del JRE. Para obtener más información, consulte [Server Certificates](https://www.jetbrains.com/help/idea/settings-tools-server-certificates.html) en la documentación de JetBrains.

#### Configuración de certificados en Visual Studio Code
<a name="configure-proxy-VSC"></a>

Para configurar Visual Studio Code de forma que confíe en los certificados SSL o TLS utilizados por el servidor proxy, asegúrese de haber configurado los siguientes ajustes de proxy para su sistema operativo.

##### Configuración de certificados en Visual Studio Code en macOS
<a name="certs-mac"></a>

Configure los siguientes ajustes de proxy para Visual Studio Code en macOS.

##### Agregación de certificados a su llavero de macOS
<a name="w2aac11c16c17c13c23b7b9c11b5b1b5"></a>

Si aún no lo ha hecho, debe agregar los certificados que utiliza el servidor proxy a su llavero de macOS. Para obtener información sobre cómo agregar certificados a su llavero, consulte [Añadir certificados a un llavero mediante Acceso a Llaveros en el Mac](https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac) en el Manual de uso de Acceso a Llaveros.

##### Instale la extensión CA para Mac VSCode
<a name="w2aac11c16c17c13c23b7b9c11b5b1b7"></a>

La [ VSCode extensión CA para Mac](https://marketplace.visualstudio.com/items?itemName=linhmtran168.mac-ca-vscode) permite a Amazon Q acceder a los certificados que has añadido a Keychain Access en tu Mac. 

Para instalar la extensión:

1. Busque `mac-ca-vscode` en el panel de extensiones de VS Code y seleccione **Instalar**. 

1. Reinicie VS Code.

##### Actualización de la configuración del proxy en VS Code en macOS
<a name="w2aac11c16c17c13c23b7b9c11b5b1b9"></a>

Actualice los siguientes ajustes para asegurarse de que VS Code esté configurado correctamente para su proxy. 

1. Abra la configuración en VS Code.

1. Escriba `proxy` en la barra de búsqueda.

1. En el campo **Http: Proxy**, agregue la URL del proxy.

1. Elimine la selección de **Http: Proxy Strict SSL**.

1. En la lista desplegable **Http: Proxy Support**, seleccione **activado**.

1. En la barra de búsqueda de configuración, introduzca `http.experimental.systemCertificatesV2`. Seleccione **Http › Experimental: System Certificates V2**. 

##### Configuración de certificados en Visual Studio Code en Windows
<a name="certs-windows"></a>

Configure los siguientes ajustes de proxy para Visual Studio Code en Windows.

##### Agregación de certificado como certificado raíz de confianza en Windows
<a name="w2aac11c16c17c13c23b7b9c11b5b3b5"></a>

Si aún no lo ha hecho, debe agregar los certificados utilizados por su servidor proxy al almacén de entidades de certificación raíz de confianza en Windows. Para agregar un certificado, realice el siguiente procedimiento: 

1. Abra la herramienta de búsqueda o una ventana de comandos Ejecutar. 

1. Escriba los siguiente para abrir la herramienta del administrador de certificados:

   ```
   certmgr.msc
   ```

1. Elija el almacén **Entidades de certificación raíz de confianza**.

1. Haga clic con el botón derecho del ratón en **Certificados**, elija **Todas las tareas** y, a continuación, elija **Importar…**.

1. Siga las instrucciones que se indican para importar su certificado de proxy.

1. Después de importar el certificado, confirme que se ha agregado. 

   En el almacén de **Entidades de certificación raíz de confianza**, haga doble clic en **Certificados**. Haga clic con el botón derecho en el certificado que ha agregado y seleccione **Propiedades**. En **Fines de certificado**, debe seleccionarse la opción **Habilitar todos los fines para este certificado**.

##### Instala la extensión Win-CA VSCode
<a name="w2aac11c16c17c13c23b7b9c11b5b3b7"></a>

La [ VSCode extensión Win-CA permite](https://marketplace.visualstudio.com/items?itemName=ukoloff.win-ca) a Amazon Q acceder a los certificados que ha añadido a los certificados raíz de confianza en Windows. 

Para instalar la extensión:

1. Busque `win-ca ` en el panel de configuración de VS Code.

1. En la lista desplegable **Inyectar**, seleccione **adjuntar**.

##### Actualización de la configuración del proxy en VS Code en Windows
<a name="w2aac11c16c17c13c23b7b9c11b5b3b9"></a>

Actualice los siguientes ajustes para asegurarse de que VS Code esté configurado correctamente para su proxy. 

1. Abra la configuración en VS Code.

1. Escriba `proxy` en la barra de búsqueda.

1. En el campo **Http: Proxy**, agregue la URL del proxy.

1. Elimine la selección de **Http: Proxy Strict SSL**.

1. En la lista desplegable **Http: Proxy Support**, seleccione **activado**.

1. En la barra de búsqueda de configuración, introduzca `http.experimental.systemCertificatesV2`. Seleccione **Http › Experimental: System Certificates V2**. 

1. Reinicie VS Code.

### Permiso para acceder a Amazon S3
<a name="allowlist-s3-bucket"></a>

Durante una transformación, Amazon Q carga el código a un bucket de Amazon S3 propiedad del servicio. Si su red u organización no ha configurado el acceso a Amazon S3, Amazon Q no podrá cargar el proyecto. 

Para garantizar que Amazon Q pueda cargar el proyecto, asegúrese de que la configuración del proxy y otros componentes de la red, como las políticas de prevención de pérdida de datos (DLP), estén configurados para permitir el acceso a Amazon S3. Es posible que también deba incluir en la lista de permitidos el bucket de Amazon S3 donde Amazon Q carga el proyecto. Para obtener más información, consulte [Bucket de Amazon S3 URLs y ARNs a la lista de permitidos](firewall.md#data-perimeters). 

Si transforma un proyecto grande, las políticas de DLP u otros componentes de la red podrían provocar demoras e impedir que la carga se realice correctamente si no están configurados para incluir en la lista de permitidos el bucket de Amazon S3. Si decide no incluir el bucket en la lista, es posible que tenga que transformar un proyecto más pequeño para que Amazon Q pueda subirlo.

## ¿Por qué fallan mis comandos Maven?
<a name="maven-commands-failing"></a>

A continuación, se Maven muestran algunos problemas de configuración que puede que veas en y. JetBrains Visual Studio Code IDEs Si soluciona los problemas y sigue viendo errores de Maven, es posible que haya un problema con su proyecto. Utilice la información de los registros de errores para solucionar cualquier problema del proyecto y, a continuación, intente volver a transformar el proyecto. 

### Actualización de la configuración de Maven en JetBrains
<a name="jetbrains"></a>

Si se produce un error de transformación en JetBrains debido a problemas con los comandos de Maven, los registros de errores aparecen en la pestaña **Ejecutar**. Utilice la información de los registros para solucionar el problema. A continuación, se muestran algunos problemas que puede que tenga que abordar: 
+ Asegúrese de que la ruta de inicio de Maven esté configurada como **Agrupada**. Vaya a **Configuración** y, a continuación, amplíe la sección **Compilación, ejecución, implementación**. Amplíe la sección **Herramientas de compilación** y, a continuación, amplíe **Maven**. En la lista desplegable de **Ruta de inicio de Maven**, seleccione **Agrupada**. 
+ Asegúrese de que el entorno de tiempo de ejecución de Java (JRE) utilice el JDK de su proyecto. Vaya a **Configuración** y, a continuación, amplíe la sección **Compilación, ejecución, implementación**. Amplíe **Maven** y elija **Runner**. En la lista desplegable de **JRE**, seleccione **Usar JDK de proyecto**. 
+ Asegúrese de que Maven esté habilitado. Vaya a **Configuración** y seleccione **Complementos**. Busque Maven y, a continuación, elija el complemento de Maven. Si ve un botón de **Habilitación**, selecciónelo para habilitar Maven. 

### Actualización de la configuración de Maven en Visual Studio Code
<a name="vscode"></a>

Si se produce un error en una transformación en VS Code debido a problemas con los comandos Maven, se abre un archivo de texto que contiene los registros de errores en una pestaña nueva. Utilice la información de los registros para solucionar el problema.

Asegúrese de haber configurado una de las siguientes opciones: 
+ Su proyecto contiene un contenedor de Maven en la carpeta raíz del proyecto
+ Hay disponible una versión de Maven compatible con Amazon Q en su `PATH`

Para obtener más información, consulte [¿Cómo agrego Maven a mi `PATH`?](#add-maven-to-path) 

## ¿Cómo agrego Maven a mi `PATH`?
<a name="add-maven-to-path"></a>

Para transformar su código en VS Code sin usar un contenedor Maven, debe instalar Maven y agregarlo a su variable de `PATH`. 

Para comprobar si ya ha instalado Maven correctamente, ejecútelo `mvn -v` en un nuevo terminal de sistema operativo externo a Visual Studio Code. Debería ver un resultado con su versión de Maven.

Si obtiene un resultado en su terminal Visual Studio Code pero no en el terminal del sistema operativo, o si no encuentra el comando, tendrá que agregar Maven a su `PATH`.

 Para añadir Maven a su `PATH`, siga las instrucciones de su máquina.

------
#### [ macOS ]

Para añadir Maven a su `PATH` de macOS, siga estos pasos.

1. Busque el directorio de instalación de Maven o la carpeta en la que instaló Maven y guarde la ruta a esa carpeta.

1. Abra el archivo de configuración del intérprete de comandos en el editor que prefiera. Para las versiones recientes de macOS, el intérprete de comandos predeterminado es `zsh` y el archivo de configuración predeterminado se encuentra en `~/.zshrc`. 

   Agregue las siguientes líneas en la parte inferior del archivo de configuración. Defina el valor de `M2_HOME` a la ruta que guardó en el paso 1:

   ```
   export M2_HOME="your Maven installation directory"
   export PATH="${M2_HOME}/bin:${PATH}"
   ```

   Estos comandos hacen que el comando `mvn` esté disponible en todos los terminales.

1. Cierre todas las ventanas de los terminales del sistema operativo y cierre todas las instancias de Visual Studio Code.

1. Para comprobar que Maven se ha añadido a su `PATH`, abra un nuevo terminal de sistema operativo y ejecute el siguiente comando:

   ```
   mvn -v
   ```

   Debería ver un resultado con su versión de Maven.

1. Después de ver el resultado de Maven, reinicie Visual Studio Code. Es posible que también deba reiniciar el equipo. Abra un nuevo terminal de Visual Studio Code y ejecute el siguiente comando: 

   ```
   mvn -v
   ```

   El resultado debe ser idéntico al del paso 4. Si el resultado de Visual Studio Code es diferente, intente lo siguiente para asegurarse de que la configuración es correcta:
   + Compruebe la variable de `PATH` en Visual Studio Code. Es posible que una extensión IDE esté alterando el `PATH` de tal manera que se diferencie de la variable `PATH` local. Desinstale la extensión para eliminarla de su `PATH`.
   + Compruebe el intérprete de comandos predeterminado en Visual Studio Code. Si está configurado de otra manera que no sea `zsh`, repita estos pasos para el intérprete de comandos.

------
#### [ Windows ]

Para agregar Maven a su `PATH` de Windows, siga estos pasos: 

1. Busque el directorio de instalación de Maven o la carpeta en la que instaló Maven y guarde la ruta a esa carpeta.

1. Abra la ventana Variables de entorno:

   1. Elija el botón Windows para abrir la barra de búsqueda.

   1. Introduzca `Edit environment variables for your account` y elíjalo.

1. En la ventana **Variables de entorno**, busque la variable de ruta. Si ya tiene una variable de ruta, elija **Editar...** para actualizarla. Si no ve ninguna variable de ruta, elija **Nueva...** para añadir una. 

1. En la ventana **Editar variable de entorno** que aparece, haga doble clic en la ruta existente para editarla o seleccione **Nueva** para agregar una nueva entrada de ruta.

   Sustituya la entrada de ruta de Maven existente por la ruta que guardó en el paso 1 o añada la ruta como una nueva entrada. Al final de la ruta, añada `\bin` como sufijo, como en el siguiente ejemplo:

   ```
   C:\Users\yourusername\Downloads\apache-maven-3.9.6-bin\apache-maven-3.9.6\bin
   ```

1. Pulse **Aceptar** para guardar la entrada de la ruta y, a continuación, vuelva a elegir **Aceptar** en la ventana **Variables de entorno**.

1. Abra un nuevo símbolo del sistema y ejecute el siguiente comando:

   ```
   mvn -v
   ```

   Debería ver un resultado con su versión de Maven.

------

## ¿Por qué Amazon Q no puede compilar mi código?
<a name="build-fail"></a>

Si la transformación falla cuando Amazon Q está compilando el código, es posible que el proyecto no esté configurado correctamente para el entorno en el que Amazon Q compila el código. Es posible que necesite actualizar la configuración de compilación o la implementación del código.

Revise el resultado del registro de compilación que proporciona Amazon Q para determinar si hay cambios que pueda realizar en su proyecto. A continuación, se muestran algunos problemas comunes que pueden impedir que Amazon Q compile el código. 

### Eliminación de las rutas absolutas en pom.xml
<a name="remove-absolute-path"></a>

Si tiene una ruta absoluta en el archivo pom.xml, Amazon Q no podrá encontrar los archivos relevantes y, por consiguiente, es posible que no pueda compilar el código.

A continuación se muestra un ejemplo de una ruta absoluta que podría tener en su archivo `pom.xml`:

```
<toolspath>
    <path>/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/lib/tools.jar</path>
</toolspath>
```

En lugar de utilizar una ruta absoluta, puede crear una ruta relativa con un puntero. A continuación se muestra un ejemplo de cómo puede sustituir la ruta absoluta anterior por una ruta relativa:

```
<toolspath>
    <path>${java.home}/../lib/tools.jar</path>
</toolspath>
```

### Eliminación de las bases de datos locales o externas en las pruebas unitarias
<a name="remove-external-databases"></a>

Amazon Q ejecuta todas las pruebas unitarias del proyecto cuando compila el código. Si una prueba unitaria llama a una base de datos local o externa, Amazon Q no tendrá acceso a la base de datos, lo que provocará un error en la compilación. Para evitar que la compilación falle, debe eliminar la llamada a la base de datos de la prueba unitaria o eliminar la prueba unitaria antes de enviar la transformación. 

## ¿Por qué ha fallado mi transformación después de 55 minutos?
<a name="build-time-limit"></a>

Si el trabajo de transformación de código falla después de 55 minutos, es probable que el tiempo de compilación del código supere el límite de tiempo de compilación. Actualmente, existe un límite de tiempo de 55 minutos para compilar el código. 

Si el tiempo de compilación local es de 55 minutos o más, reduzca el tiempo de compilación del proyecto para transformar el código. Si la compilación local es más rápida que la compilación con Transformación de código, revise el proyecto para ver si hay tareas que puedan estar fallando o que requieran más tiempo en un entorno diferente. Plantéese la posibilidad de deshabilitar los casos de prueba de larga duración. Plantéese también la posibilidad de utilizar los tiempos de espera para intentar acceder a recursos que podrían no estar disponibles en el entorno IDE seguro o en Internet. 

## ¿Por qué no puedo descargar el código transformado?
<a name="download-code-fail"></a>

Si no puede descargar el código una vez completada la transformación, es probable que se deba a uno de los siguientes problemas. Consulte el tema correspondiente al error que vea en Amazon Q. 

**Topics**
+ [

### Reducción del tamaño del proyecto
](#reduce-project-size-output)
+ [

### Descarga de diferencias del código en 30 días
](#download-30-hrs)
+ [

### Configuración de los ajustes del proxy en su IDE
](#configure-proxy-download)
+ [

### Eliminación de los caracteres comodín de la configuración del proxy de JetBrains
](#remove-wildcard)

### Reducción del tamaño del proyecto
<a name="reduce-project-size-output"></a>

Una vez completada la transformación, Amazon Q genera un artefacto de salida que contiene una diferencia con el código actualizado y un resumen de la transformación con información sobre los cambios realizados. El artefacto de salida debe tener 1 GB o menos para que el IDE lo descargue. 

Si el artefacto de salida supera el límite, no podrá descargar el código actualizado o el resumen de la transformación. Intente transformar un proyecto más pequeño para evitar que se produzca un artefacto de gran tamaño. Si el problema persiste, ponte en contacto con Soporte. Para obtener información sobre cómo ponerse en contacto Soporte con Amazon Q, consulte[Uso de Amazon Q Developer para chatear con Soporte](support-chat.md).

### Descarga de diferencias del código en 30 días
<a name="download-30-hrs"></a>

El archivo de diferencias del código con el código actualizado solo estará disponible durante 30 días después de que se complete la transformación. Si han pasado más de 30 días desde que se completó la transformación, reiníciela para descargar el archivo de diferencias.

### Configuración de los ajustes del proxy en su IDE
<a name="configure-proxy-download"></a>

Amazon Q descarga el código actualizado de un bucket de Amazon S3 propiedad del servicio. Parte del proceso de descarga implica el uso de certificados SSL o TLS para establecer la comunicación entre Amazon S3 y su IDE. Si utiliza un servidor proxy, los certificados SSL o TLS utilizados por el servidor proxy deben ser de confianza; de lo contrario, Amazon Q no podrá cargar el proyecto.

Para descargar el código, puede que tenga que configurar el IDE para que confíe en los certificados o actualizar otras configuraciones del proxy. Para obtener más información sobre la actualización de la configuración del proxy, consulte [Configuración de los ajustes del proxy en su IDE](#configure-proxy).

### Eliminación de los caracteres comodín de la configuración del proxy de JetBrains
<a name="remove-wildcard"></a>

Si ha configurado los ajustes de proxy en su IDE de JetBrains, es posible que aparezca el siguiente error al descargar el código actualizado: 

```
software.amazon.awssdk.core.exception.SdkClientException: 
Unable to execute HTTP request: Dangling meta character '*' near index 0
```

Es probable que esto se deba a la presencia de un carácter comodín (\$1) en el campo **No hay proxy para** de la configuración del proxy del IDE. El Java SDK que utiliza Amazon Q no admite entradas de comodines en este campo. 

Para descargar el código, elimine los caracteres comodín del campo **No hay proxy para** y, a continuación, reinicie el IDE. Si necesita especificar los hosts que debe omitir el proxy, utilice una expresión regular en lugar de un comodín. Para actualizar la configuración del proxy en su JetBrains IDE, consulte el [proxy HTTP](https://www.jetbrains.com/help/idea/settings-http-proxy.html) en la JetBrains documentación.

## ¿Cómo puedo acceder a los registros de transformación del código?
<a name="logs"></a>

### Acceso a registros en JetBrains
<a name="jetbrains-logs"></a>

Para obtener información sobre cómo acceder a los archivos de registro de JetBrains, consulte [Locating IDE log files](https://intellij-support.jetbrains.com/hc/en-us/articles/207241085-Locating-IDE-log-files) en la documentación de JetBrains. 

Para encontrar los registros emitidos por Amazon Q en JetBrains, busque en los registros del IDE la siguiente cadena:

```
software.aws.toolkits.jetbrains.services.codemodernizer
```

Los registros de transformación de código comienzan con la cadena anterior. Los registros generados por Maven se muestran en la pestaña **Ejecutar** y tienen la cadena anterior antes y después de la entrada del registro. 

### Acceso a registros en Visual Studio Code
<a name="vsc-logs"></a>

Para buscar los registros emitidos por Amazon Q en VS Code, realice los siguientes pasos:

1. Elija **Ver** en la barra de navegación superior y, a continuación, elija **Paleta de comandos**.

1. Busque `Amazon Q: View Logs` en la paleta de comandos que aparece.

1. Los registros se abren en el IDE. Para buscar los archivos de registro de `CodeTransformation`, utilice `CMD + F` o `Control + F`. 

Los registros de transformación en VS Code llevan el prefijo `CodeTransformation:`. A continuación se muestra un ejemplo de un registro generado en VS Code por un error de dependencias de copia de Maven:

```
2024-02-12 11:29:16 [ERROR]: CodeTransformation: Error in running Maven copy-dependencies command mvn = /bin/sh: mvn: command not found
```

## ¿Cómo puedo encontrar mi ID de trabajo de transformación?
<a name="job-id"></a>

### Localización del ID de trabajo en JetBrains
<a name="jetbrains"></a>

Para encontrar el ID de un trabajo de transformación en JetBrains, vaya a la pestaña **Detalles de la transformación** en el **Centro de transformación** y elija el icono **Mostrar estado del trabajo** (reloj). 

### Localización del ID de trabajo en Visual Studio Code
<a name="vs-code"></a>

Para encontrar el ID de un trabajo de transformación en VS Code, vaya al **Centro de transformación** y elija el icono **Mostrar estado del trabajo** (reloj). 