

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Trasformazione delle applicazioni Java con Amazon Q Developer
<a name="transform-java"></a>

**Nota**  
AWS Transform custom è ora disponibile per gli upgrade Java. Agentic AI che gestisce gli aggiornamenti delle versioni, la migrazione dell'SDK e altro ancora e migliora ad ogni esecuzione. [Nozioni di base](https://docs.aws.amazon.com/transform/latest/userguide/custom-get-started.html)

Amazon Q supporta i seguenti tipi di trasformazioni per le applicazioni Java: 
+ Aggiornamenti del linguaggio Java e della versione delle dipendenze
+ Conversione SQL incorporata per la migrazione dei database da Oracle a PostgreSQL

Per iniziare, consulta l’argomento relativo al tipo di trasformazione che desideri eseguire. 

**Topics**
+ [Quote](#quotas-java-transformation-ide)
+ [Aggiornamento delle versioni Java con Amazon Q Developer](code-transformation.md)
+ [Conversione di SQL incorporato in applicazioni Java con Amazon Q Developer](transform-sql.md)
+ [Trasformazione del codice nella riga di comando con Amazon Q Developer](transform-CLI.md)
+ [Visualizzare la cronologia dei processi di trasformazione](transformation-job-history.md)
+ [Risoluzione dei problemi con le trasformazioni Java](troubleshooting-code-transformation.md)

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

Le trasformazioni delle applicazioni Java con Amazon Q nell’IDE e nella riga di comando mantengono le seguenti quote: 
+ **Righe di codice per processo**: il numero massimo di righe di codice che Amazon Q può trasformare in un determinato processo di trasformazione. 
+ **Righe di codice al mese**: il numero massimo di righe di codice che Amazon Q può trasformare in un mese. 
+ **Processi simultanei**: il numero massimo di processi di trasformazione che è possibile eseguire nello stesso momento. Questa quota si applica a tutte le trasformazioni nell’IDE, incluse le [trasformazioni .NET in Visual Studio](transform-dotnet-IDE.md).
+ **Processi al mese**: il numero massimo di processi di trasformazione che è possibile eseguire in un mese. 


| Risorsa | Quote | 
| --- | --- | 
| Righe di codice per processo | Piano gratuito: 1000 righe di codice | 
| Righe di codice al mese | Piano gratuito: 2000 righe di codice | 
| Processi simultanei |  1 processo per utente 25 offerte di lavoro per account AWS   | 
| Processi al mese |  Piano Pro: 1000 processi Piano gratuito: 100 processi  | 

# Aggiornamento delle versioni Java con Amazon Q Developer
<a name="code-transformation"></a>

Amazon Q Developer può aggiornare le applicazioni Java a versioni di linguaggio più recenti nell’ambiente di sviluppo integrato (IDE). Le modifiche che Amazon Q può apportare per aggiornare il codice includono l'aggiornamento di componenti di codice obsoleti e APIs l'aggiornamento di librerie, framework e altre dipendenze nel codice. 

Per trasformare il codice, Amazon Q anzitutto lo scrive nella versione del linguaggio di origine e verifica di avere le informazioni necessarie per eseguire la trasformazione. Dopo che Amazon Q ha trasformato correttamente il codice, puoi verificare e accettare le modifiche nel tuo IDE. Poiché Amazon Q Developer apporta le modifiche minime necessarie per rendere il codice aggiornato compatibile con il JDK di destinazione, è necessaria un’ulteriore trasformazione per aggiornare le librerie e le dipendenze del progetto. Per ulteriori informazioni su come Amazon Q trasforma il codice, consulta [Come Amazon Q Developer trasforma il codice per gli aggiornamenti del linguaggio Java](how-CT-works.md).

**Topics**
+ [Aggiornamenti Java supportati e IDEs](#supported-languages-IDEs)
+ [Fase 1: prerequisiti](#java-upgrade-prerequisites)
+ [Fase 2: configurare il progetto](#configure-project)
+ [Fase 3: creazione di un file di aggiornamento delle dipendenze (facoltativo)](#create-dependency-upgrade-file)
+ [Fase 4: trasformazioni di codice](#transform-code-java)
+ [Come Amazon Q Developer trasforma il codice per gli aggiornamenti del linguaggio Java](how-CT-works.md)

## Aggiornamenti Java supportati e IDEs
<a name="supported-languages-IDEs"></a>

Amazon Q attualmente supporta le seguenti versioni del codice sorgente Java e delle versioni di destinazione per le trasformazioni. La trasformazione del codice nella stessa versione di Java include l’aggiornamento delle librerie e di altre dipendenze nella versione del codice sorgente.


**Aggiornamenti Java supportati**  

| Versione del codice sorgente | Versioni supportate per la destinazione | 
| --- | --- | 
| Java 8  | Java 17 e Java 21 | 
| Java 11 | Java 17 e Java 21 | 
| Java 17 | Java 17 e Java 21  | 
| Java 21 |  Java21   | 

Amazon Q supporta gli aggiornamenti Java nei seguenti casi: IDEs
+ Moduli in JetBrains IDEs
+ Progetti e spazi di lavoro in Visual Studio Code

## Fase 1: prerequisiti
<a name="java-upgrade-prerequisites"></a>

Prima di continuare, assicurati di aver completato le fasi in [Configurazione di Amazon Q nell’IDE in uso](q-in-IDE-setup.md).

Prima di iniziare un processo di trasformazione del codice, verifica che siano soddisfatti i seguenti requisiti preliminari: 
+ Il tuo progetto è scritto in una [versione di Java supportata](#supported-languages-IDEs) ed è basato su Maven.
+ Il tuo progetto viene creato correttamente in Maven nel tuo IDE. Maven 3.8 o versioni successive è attualmente supportato. 
+ Il codice sorgente JDK del progetto è disponibile localmente e rappresenta la versione del codice sorgente. Ad esempio, se stai trasformando il codice Java 8, l’installazione JDK locale dovrebbe essere JDK 8.
+ Il progetto viene creato in 55 minuti o meno. 
+ Il progetto è configurato correttamente e viene specificata la versione JDK corretta. Per ulteriori informazioni, consulta [Fase 2: configurare il progetto](#configure-project).
+ Il progetto non richiede l’accesso alle risorse sulla rete privata, compresi un cloud privato virtuale (VPC) o una rete on-premises. Ad esempio, se il progetto contiene test di unità che si connettono a un database della rete, la trasformazione avrà esito negativo.
+ Il progetto non utilizza plugin che impacchettano linguaggi diversi da Java nel progetto Java. Ad esempio, se il progetto utilizza il codice front-end [frontend-maven-plugin](https://github.com/eirslett/frontend-maven-plugin)per eseguire il JavaScript codice front-end oltre al codice sorgente Java, la trasformazione avrà esito negativo.
+ La rete locale consente il caricamento sul bucket Amazon S3 che Amazon Q utilizza per trasformare il codice. Per ulteriori informazioni, consulta [Allow access to Amazon S3 buckets in data perimeters](firewall.md#data-perimeters).
+ L’applicazione utilizza solo caratteri UTF-8. Se l’applicazione utilizza caratteri non UTF-8, Amazon Q tenterà comunque di trasformare il codice. 

## Fase 2: configurare il progetto
<a name="configure-project"></a>

Per configurare il progetto, utilizza le seguenti informazioni per l’IDE che stai utilizzando.

### Configurare un progetto in JetBrains
<a name="configure-jetbrains"></a>

Per configurare il progetto in JetBrains, potrebbe essere necessario specificare le seguenti impostazioni del progetto e del modulo. 

Se i moduli utilizzano lo stesso JDK e lo stesso livello di linguaggio del progetto, non è necessario aggiornare le impostazioni del modulo.
+ SDK del progetto: il JDK utilizzato per compilare il progetto. 
+ Livello del linguaggio di progetto: la versione di Java utilizzata nel progetto.
+ SDK del modulo: il JDK utilizzato per compilare il modulo. 
+ Livello del linguaggio del modulo: la versione di Java utilizzata nel modulo. 
+ Maven Runner JRE: il JDK con cui crei il modulo. 

**Aggiornare le impostazioni del progetto e del modulo**

Per aggiornare l’SDK e le impostazioni del livello di linguaggio per il progetto o il modulo, completa le seguenti fasi:

1. Dall’IDE JetBrains, scegli **File** e quindi **Struttura del progetto**. 

1. Viene visualizzata la finestra di dialogo Struttura del progetto. In **Impostazioni progetto**, scegli **Progetto**. 

   1. Per aggiornare il progetto JDK, scegli dall’elenco a discesa accanto a **SDK**. 

   1. Per aggiornare la lingua del progetto, scegli dal menu a discesa accanto a **Livello linguaggio**. 

1. In **Project Settings (Impostazioni progetto)**, scegliere **Modules (Moduli)**. 

   1. Per aggiornare il modulo JDK, scegli dall’elenco a discesa accanto a **SDK**. 

   1. Per aggiornare la lingua del modulo, scegli dal menu a discesa accanto a **Livello linguaggio**.

Per ulteriori informazioni, consulta [Project structure settings](https://www.jetbrains.com/help/idea/project-settings-and-structure.html) e [Module structure settings](https://www.jetbrains.com/help/idea/configure-modules.html) nella documentazione di JetBrains.

**Aggiornare le impostazioni di Maven**

Per aggiornare l’ambiente Maven Runner JRE completa le fasi seguenti.

1. Dall’IDE di JetBrains, scegli l’icona a forma di ingranaggio, quindi scegli **Impostazioni** nel menu visualizzato. 

1. Nella finestra **Impostazioni**, scegli **Creazione, esecuzione, implementazione**, quindi **Strumenti di creazione**, **Maven** e infine **Runner**.

1. Nel campo JRE, scegli il JDK utilizzato per creare il modulo che stai trasformando.

### Configurare un progetto in VS Code
<a name="configure-vsc"></a>

Per configurare il progetto in VS Code, il progetto deve contenere quanto segue: 
+ Un file `pom.xml` nella cartella root del progetto
+ Un file `.java` nella directory del progetto

Se il progetto contiene un wrapper eseguibile Maven (`mvnw` per macOS o `mvnw.cmd` per Windows), assicurati che sia alla root del progetto. Amazon Q utilizzerà il wrapper e non sono necessarie altre configurazioni Maven.

Se non utilizzi un wrapper Maven, installa Maven. Per ulteriori informazioni, consulta [Installing Apache Maven](https://maven.apache.org/install.html) nella documentazione di Apache Maven.

Una volta installato Maven, aggiungilo alla variabile `PATH`. Per ulteriori informazioni, consulta [Come faccio ad aggiungere Maven al mio `PATH`?](troubleshooting-code-transformation.md#add-maven-to-path) Inoltre, la variabile `runtime` di Java dovrebbe puntare a un JDK e non a un JRE. Per confermare che la configurazione sia corretta, esegui `mvn -v`. L’output dovrebbe mostrare la versione Maven e la variabile di `runtime` che punta al percorso del JDK.

## Fase 3: creazione di un file di aggiornamento delle dipendenze (facoltativo)
<a name="create-dependency-upgrade-file"></a>

Puoi fornire ad Amazon Q un file di *aggiornamento delle dipendenze*, un file YAML che elenca le dipendenze del progetto e le versioni a cui eseguire l’aggiornamento durante una trasformazione. Fornendo un file di aggiornamento delle dipendenze, puoi specificare dipendenze di terze e prime parti che Amazon Q potrebbe altrimenti non conoscere per aggiornare.

Le dipendenze di prime parti si riferiscono alle librerie, ai plugin e ai framework gestiti dall’organizzazione e sono disponibili solo localmente o sulla rete privata dell’organizzazione. Amazon Q è in grado di accedere alle dipendenze proprietarie quando esegue le build nell’ambiente locale. Per ulteriori informazioni, consulta [Compilazione del codice nell’ambiente locale](how-CT-works.md#java-local-builds). Le dipendenze di terze parti sono disponibili pubblicamente o sono dipendenze open source che non sono esclusive della tua organizzazione.

Puoi specificare le dipendenze di prime parti che desideri aggiornare in un file YAML e Amazon Q le aggiorna durante l’aggiornamento JDK (ad esempio, da Java 8 a 17). Puoi avviare una trasformazione separata (da 17 a 17 o da 21 a 21) dopo l’aggiornamento iniziale di JDK per aggiornare le dipendenze di terze parti.

Una volta che Amazon Q ha eseguito un aggiornamento JDK minimo, puoi avviare una trasformazione separata per aggiornare tutte le dipendenze di terze parti. In alternativa, puoi specificare le dipendenze di terze parti e le relative versioni in un file YAML per aggiornare tali dipendenze solo durante la trasformazione dell’aggiornamento della libreria.

Amazon Q ti chiederà di fornire un file di aggiornamento delle dipendenze durante la trasformazione. Se desideri fornirne uno, assicurati innanzitutto di aver configurato correttamente il file. Nel file YAML sono obbligatori i seguenti campi:
+ name - Il nome del file di aggiornamento delle dipendenze.
+ description (facoltativo) - Una descrizione del file di aggiornamento delle dipendenze e per quale trasformazione.
+ dependencyManagement - Contiene l’elenco delle dipendenze e dei plugin da aggiornare.
+ dependencies - Contiene il nome e la versione delle librerie da aggiornare.
+ plugins - Contiene i nomi e le versioni dei plugin da aggiornare.
+ identifier - Il nome della libreria, del plugin o di un’altra dipendenza.
+ targetVersion - La versione della dipendenza a cui eseguire l’aggiornamento.
+ versionProperty (facoltativo) - La versione della dipendenza che stai definendo, impostata con il tag `properties` nel file `pom.xml` dell’applicazione.
+ originType - Indica se la dipendenza è di prima o terza parte, specificata da FIRST\$1PARTY o THIRD\$1PARTY.

Di seguito è riportato un esempio di file YAML per l’aggiornamento delle dipendenze e la configurazione richiesta per l’analisi di Amazon Q:

```
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"
```

## Fase 4: trasformazioni di codice
<a name="transform-code-java"></a>

Per testare la configurazione IDE, scarica e decomprimi il progetto di esempio e completa le fasi seguenti per l’IDE. Se riesci a visualizzare le modifiche proposte e il riepilogo delle trasformazioni, è tutto pronto per trasformare il tuo progetto di codice. Se la trasformazione no riesce, l’IDE non è configurato correttamente. Per risolvere i problemi di configurazione, consulta [Fase 2: configurare il progetto](#configure-project) e [Risoluzione dei problemi](troubleshooting-code-transformation.md).

**Nota**  
Non spegnere, chiudere o mettere in standby il computer locale durante la trasformazione del codice. Le build iniziali e di convalida utilizzano l’ambiente lato client, che richiede una connessione di rete stabile. 

Completa la procedura seguente per l’IDE per aggiornare la versione di linguaggio del codice di progetto o modulo di codice.

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

1. Apri il modulo che desideri aggiornare in JetBrains. Assicurati di aver creato correttamente il tuo progetto nell’IDE. 

1. Scegli il logo Amazon Q e chiedi ad Amazon Q di trasformare la tua applicazione nel pannello di chat che si apre.

1. Viene visualizzato un pop-up **Trasforma la tua applicazione**. Scegli il progetto che desideri aggiornare dall’elenco a tendina, quindi scegli **Trasformazioni**. 

1. Amazon Q richiede di fornire un file delle dipendenze per l’aggiornamento. Se hai configurato un YAML con le dipendenze e la versione a cui eseguire l’aggiornamento, aggiungi il file. Amazon Q convaliderà il file per garantire che sia configurato correttamente. Se ricevi un errore, controlla il formato e i campi obbligatori descritti in [Fase 3: creazione di un file di aggiornamento delle dipendenze (facoltativo)](#create-dependency-upgrade-file).

1. Amazon Q inizia la trasformazione. Puoi visualizzare lo stato di avanzamento nella scheda **Dettagli della trasformazione**. 

1. Una volta completata la trasformazione, puoi verificare il codice aggiornato prima di aggiornare il progetto. Per visualizzare il nuovo codice, vai alla scheda **Dettagli della trasformazione**, quindi scegli **Visualizza differenze** Nella finestra **Applica patch** che appare, scegli un file per aprire una visualizzazione delle differenze con il codice sorgente e il codice aggiornato. 

1. Per accettare le modifiche apportate da Amazon Q, scegli **Visualizza differenze** per aprire la finestra **Applica patch**. Seleziona tutti i file aggiornati e scegli **OK** per aggiornare il progetto in corso. 

1. Per ottenere dettagli su come è stato aggiornato il codice e sulle fasi successive suggerite, nella scheda **Dettagli della trasformazione**, scegli **Visualizza riepilogo della trasformazione**. 

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

1. Apri il progetto o lo spazio di lavoro di cui desideri eseguire l’aggiornamento in VS Code. Assicurati di aver creato correttamente il tuo progetto nell’IDE. 

1. Scegli il logo Amazon Q e chiedi ad Amazon Q di trasformare la tua applicazione nel pannello di chat che si apre.

1. Scegli il progetto che desideri aggiornare dalla barra di ricerca nella parte superiore dell’IDE. 

1. Se Amazon Q non riesce a trovare la versione del codice sorgente, ti chiede di scegliere la versione del codice. Per procedere, scegli la versione in cui è scritto il codice sorgente, quindi scegli **Trasforma**. 

1. Se richiesto, immetti il percorso `JAVA_HOME` nel JDK. Per ulteriori informazioni, consulta [Configure your VS Code project](#configure-vsc). 

1. Amazon Q richiede di fornire un file delle dipendenze per l’aggiornamento. Se hai configurato un YAML con le dipendenze e la versione a cui eseguire l’aggiornamento, aggiungi il file. Amazon Q convaliderà il file per garantire che sia configurato correttamente. Se ricevi un errore, controlla il formato e i campi obbligatori descritti in [Fase 3: creazione di un file di aggiornamento delle dipendenze (facoltativo)](#create-dependency-upgrade-file).

1. Amazon Q inizia la trasformazione. Puoi visualizzare i progressi nella scheda **Hub di trasformazione**. 

1. Una volta completata la trasformazione, si apre la scheda **Modifiche proposte**. Per verificare il codice aggiornato prima di aggiornare il progetto, scegli **Scarica le modifiche proposte**. Scegli un file per aprire una visualizzazione delle differenze con il codice sorgente e il codice aggiornato. 

1. Per accettare le modifiche apportate da Amazon Q, vai alla scheda **Modifiche proposte** e scegli **Accetta**. 

1. Per ottenere dettagli su come è stato aggiornato il codice e sulle fasi successive suggerite, nell’**Hub di trasformazione**, scegli il pulsante con i puntini di sospensione **Visualizzazioni e altre azioni**, quindi scegli **Mostra riepilogo della trasformazione**.

------

# Come Amazon Q Developer trasforma il codice per gli aggiornamenti del linguaggio Java
<a name="how-CT-works"></a>

Per trasformare il codice, Amazon Q Developer genera un piano di trasformazione che utilizza per aggiornare la versione del linguaggio di codice del progetto. Dopo aver trasformato il codice, fornisce un riepilogo della trasformazione e una differenza dei file per consentirti di esaminare le modifiche prima di accettarle. Poiché Amazon Q Developer apporta le modifiche minime necessarie per rendere il codice aggiornato compatibile con il JDK di destinazione, è necessaria un’ulteriore trasformazione per aggiornare le librerie e le dipendenze del progetto. Le sezioni seguenti forniscono ulteriori dettagli su come Amazon Q esegue la trasformazione.

## Creazione del codice e di un piano di trasformazione
<a name="build-code-create-plan"></a>

Per iniziare a trasformare il codice, Amazon Q crea il progetto localmente e genera un artefatto di compilazione che contiene il codice sorgente, le dipendenze del progetto e i log di compilazione. 

Dopo aver generato l’artefatto di compilazione, Amazon Q crea il codice in un ambiente di compilazione sicuro e crea un piano di trasformazione personalizzato in base al progetto o al modulo che stai aggiornando. Il piano di trasformazione delinea le modifiche specifiche che Amazon Q tenterà di apportare, tra cui nuove versioni di dipendenza, importanti modifiche al codice e sostituzioni suggerite per il codice obsoleto. Queste modifiche si basano sulla compilazione preliminare del codice e potrebbero cambiare durante la trasformazione.

## Trasformazioni di codice
<a name="transform-code"></a>

Per trasformare il codice, Amazon Q tenta di aggiornarlo alla versione Java di destinazione in base alle modifiche proposte nel piano di trasformazione. Man mano che apporta le modifiche, ricostruisce ed esegue i test di unità esistenti nel codice sorgente per correggere in modo iterativo eventuali errori riscontrati. L’aggiornamento JDK può essere effettuato dalla seguente versione del codice sorgente alla versione di destinazione:
+ Da Java 8 a 17
+ Da Java 8 a 21
+ Da Java 11 a 17
+ Da Java 11 a 21
+ Da Java 17 a 21

Amazon Q apporta le modifiche minime necessarie per rendere il codice compatibile con la versione Java di destinazione. Una volta che Amazon Q ha eseguito un aggiornamento JDK minimo, puoi avviare una trasformazione separata per aggiornare tutte le dipendenze di terze parti. In alternativa, puoi specificare le dipendenze di terze parti e le relative versioni in un file YAML per aggiornare tali dipendenze solo durante la trasformazione dell’aggiornamento della libreria.

Amazon Q tenta di apportare le seguenti modifiche durante l’aggiornamento del codice:
+ Aggiorna i componenti del codice obsoleti in base ai suggerimenti sulla versione Java di destinazione
+ Aggiorna le librerie e i framework più diffusi a una versione compatibile con la versione Java di destinazione. La procedura include l’aggiornamento delle seguenti librerie e framework alle ultime versioni principali disponibili: 
  + Apache Commons IO 
  + Apache HttpClient 
  + bc-fips 
  + Cucumber-JVM 
  + Ibernazione 
  + 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**  
Non spegnere o chiudere il computer locale durante la trasformazione del codice, perché la compilazione lato client richiede una connessione di rete stabile.

## Compilazione del codice nell’ambiente locale
<a name="java-local-builds"></a>

Durante una trasformazione, Amazon Q esegue delle build di verifica nell’ambiente locale. Amazon Q trasforma il codice lato server in più fasi. Dopo ogni fase, Amazon Q invia il codice all’ambiente locale per creare e testare le modifiche apportate. Il codice viene quindi rinviato lato server per continuare la trasformazione. 

La build nell’ambiente locale aiuta a verificare il codice trasformato permettendo ad Amazon Q di eseguire test che richiedono l’accesso a risorse private. Per ridurre al minimo i rischi di sicurezza associati alla creazione di codice generato dall’IA nell’ambiente locale, Amazon Q esamina e aggiorna il codice generato per risolvere i problemi di sicurezza.

## Revisione del riepilogo della trasformazione e accettazione delle modifiche
<a name="review-plan-accept-changes"></a>

Una volta completata la trasformazione, Amazon Q ne fornisce un riepilogo con i dettagli sulle modifiche apportate, incluso lo stato della build finale che indica se l’intero progetto è stato aggiornato. È anche possibile visualizzare un riepilogo del log di compilazione per comprendere eventuali problemi che hanno impedito ad Amazon Q di creare il codice nella versione aggiornata.

Il riepilogo della trasformazione include inoltre le differenze tra le modifiche proposte nel piano di trasformazione e le modifiche apportate da Amazon Q al termine dell’operazione per aggiornare il codice, oltre a eventuali modifiche aggiuntive non incluse nel piano originale. 

Dopo aver esaminato il riepilogo della trasformazione, è possibile visualizzare le modifiche proposte da Amazon Q in una visualizzazione delle differenze dei file. Qualsiasi modifica al codice suggerita da Amazon Q non influirà sui file di progetto correnti finché non accetti le modifiche. Il codice trasformato è disponibile fino a 30 giorni dopo il completamento della trasformazione. 

## Completamento di trasformazioni parzialmente riuscite
<a name="partially-successful-transformations"></a>

A seconda della complessità e delle specifiche della codebase, potrebbero verificarsi delle istanze in cui la trasformazione è parzialmente riuscita. Ciò significa che Amazon Q è stato in grado di trasformare solo determinati file o aree di codice del progetto. In questo caso, è necessario aggiornare manualmente il codice rimanente affinché il progetto sia compilabile nella versione del linguaggio aggiornata. 

La chat di Amazon Q nell’IDE può essere d’aiuto per trasformare la parte rimanente di codice. Puoi chiedere ad Amazon Q di esaminare i file parzialmente aggiornati e fornire nuovo codice per risolvere problemi, come gli errori di compilazione. Puoi anche utilizzare [funzionalità come Feature development](q-in-IDE-chat.md#develop-code) e [Workspace context](workspace-context.md) per includere più parti del tuo progetto come contesto e ricevere suggerimenti per più file contemporaneamente. 

# Conversione di SQL incorporato in applicazioni Java con Amazon Q Developer
<a name="transform-sql"></a>

L'agente Amazon Q Developer per la trasformazione del codice nell'IDE può aiutarti a convertire SQL incorporato per completare la migrazione di database da Oracle a PostgreSQL con (DMS). AWS Database Migration Service AWS 

AWS DMS è un servizio cloud che consente di migrare database relazionali, data warehouse, database NoSQL e altri tipi di archivi dati. DMS Schema Conversion in AWS DMS ti aiuta a convertire gli schemi di database e gli oggetti di codice che puoi applicare al database di destinazione. [Per ulteriori informazioni, consulta Cos'è? AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) nella *Guida AWS Database Migration Service per l'utente*.

Quando si utilizzano AWS DMS e DMS Schema Conversion per migrare un database, potrebbe essere necessario convertire il codice SQL incorporato nell'applicazione per renderlo compatibile con il database di destinazione. Invece di convertirlo manualmente, puoi utilizzare Amazon Q nell’IDE per automatizzare la conversione. Amazon Q utilizza i metadati di una conversione dello schema DMS per convertire l’SQL incorporato nell’applicazione in una versione compatibile con il database di destinazione.

Attualmente, Amazon Q è in grado di convertire SQL in applicazioni Java per database Oracle che migrano a PostgreSQL. Vedrai l’opzione per trasformare il codice SQL nell’IDE solo se l’applicazione contiene istruzioni Oracle SQL. Per ulteriori informazioni, consulta Prerequisiti. 

## Fase 1: prerequisiti
<a name="sql-transform-prereqs"></a>

Prima di continuare, assicurati di aver completato le fasi in [Configurazione di Amazon Q nell’IDE in uso](q-in-IDE-setup.md).

Prima di iniziare un processo di trasformazione del codice per la conversione in SQL, verifica che siano soddisfatti i seguenti prerequisiti:
+ Stai migrando un’applicazione Java con SQL incorporato da un database Oracle a un database PostgreSQL. L’applicazione deve contenere istruzioni Oracle SQL per essere idonea alla trasformazione. 
+ Hai completato il processo di conversione dello schema del database utilizzando AWS DMS Schema Conversion. Per ulteriori informazioni, consulta [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) nella *Database Migration Guide*.
+ Al termine della conversione dello schema, è stato scaricato il file del progetto di migrazione dalla AWS console DMS.

## Fase 2: configurazione dell’applicazione
<a name="sql-transform-configure"></a>

Per convertire il codice SQL incorporato, il progetto Java deve contenere almeno un file `.java`. 

Se si utilizza un JetBrains IDE, è necessario impostare il campo SDK nelle impostazioni di Project Structure sul JDK applicabile. Per informazioni sulla configurazione delle impostazioni della struttura del progetto, consulta Impostazioni della [struttura del progetto nella documentazione](https://www.jetbrains.com/help/idea/project-settings-and-structure.html). JetBrains 

## Fase 3: convertire l’SQL incorporato
<a name="convert-sql"></a>

Per convertire il codice SQL incorporato nell’applicazione Java in un formato compatibile con il database di destinazione PostgreSQL, completa le seguenti fasi:

1. Nel tuo IDE su cui è installato Amazon Q, apri la codebase Java che contiene l’SQL incorporato da convertire. 

1. Scegli l’icona di Amazon Q per aprire il pannello di chat. 

1. Chiedi ad Amazon Q di trasformare la tua applicazione nel pannello di chat.

1. Se l’applicazione Java è idonea per la conversione SQL, Amazon Q ti chiederà di scegliere il tipo di trasformazione che desideri eseguire. Specificare **SQL conversion**. 

1. Amazon Q richiede di caricare il file di metadati dello schema recuperato da Amazon S3. Nella chat, Amazon Q fornisce istruzioni per recuperare il file. 

1. Amazon Q richiede di fornire il progetto che contiene il codice SQL incorporato e il file di schema del database. Scegli i file appropriati dai menu a discesa nel pannello della chat.

1. Verifica che i dettagli recuperati da Amazon Q dallo schema del database siano accurati. 

1. Amazon Q inizia a convertire il tuo codice SQL. Questa fase potrebbe richiedere diversi minuti.

1. Dopo che Amazon Q ha convertito il codice SQL, fornisce un diff con tutti gli aggiornamenti apportati ai tuoi file. Controlla le modifiche nei diff, quindi accetta le modifiche per aggiornare il codice. 

   Amazon Q fornisce inoltre un riepilogo della trasformazione con i dettagli sulle modifiche apportate.

1. Dopo aver aggiornato il codice, torna alla console AWS DMS per verificare che il nuovo SQL sia compatibile con il database migrato. 

# Trasformazione del codice nella riga di comando con Amazon Q Developer
<a name="transform-CLI"></a>

Puoi trasformare le tue applicazioni dalla riga di comando con lo strumento di trasformazione da riga di comando di Amazon Q Developer. Per trasformare il codice, rendi disponibili il percorso del codice sorgente e tutti i file di configurazione necessari e Amazon Q genera nuovo codice in una serie di fasi. Durante la trasformazione, Amazon Q crea codice nel tuo ambiente locale per verificare le modifiche. Per ulteriori informazioni, consulta [Compilazione del codice nell’ambiente locale](#local-builds). Amazon Q crea un nuovo ramo nel repository in cui esegue il commit delle modifiche al codice. Una volta completata la trasformazione, puoi unire il ramo nel ramo originale per incorporare le modifiche nella tua codebase. 

Per iniziare, installa lo strumento da riga di comando ed esegui l’autenticazione, quindi controlla i comandi per configurare e avviare una trasformazione. 

**Topics**
+ [Compilazione del codice nell’ambiente locale](#local-builds)
+ [Comandi](#commands)
+ [Esecuzione di una trasformazione nella riga di comando con Amazon Q Developer](run-CLI-transformations.md)
+ [Risoluzione dei problemi delle trasformazioni nella riga di comando](troubleshooting-CLI-transformations.md)
+ [Cronologia delle versioni dello strumento di trasformazione della riga di comando di Amazon Q Developer](transform-CLI-versions.md)

## Compilazione del codice nell’ambiente locale
<a name="local-builds"></a>

Durante una trasformazione, Amazon Q esegue delle build di verifica nell’ambiente locale. Amazon Q trasforma il codice lato server in più fasi. Dopo ogni fase, Amazon Q invia il codice all’ambiente locale per creare e testare le modifiche apportate. Il codice viene quindi rinviato lato server per continuare la trasformazione. 

La build nell’ambiente locale aiuta a verificare il codice trasformato permettendo ad Amazon Q di eseguire test che richiedono l’accesso a risorse private. Per ridurre al minimo i rischi di sicurezza associati alla creazione di codice generato dall’IA nell’ambiente locale, Amazon Q esamina e aggiorna il codice generato per risolvere i problemi di sicurezza.

**Nota**  
Amazon Q esegue le trasformazioni in base alle richieste, alle descrizioni e ai contenuti del progetto. Per mantenere la sicurezza, evita di includere artefatti esterni non controllati nel repository del progetto e convalida sempre il codice trasformato per motivi di funzionalità e sicurezza.

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

Per step-by-step istruzioni sull'esecuzione di questi comandi, vedere[Esecuzione di una trasformazione nella riga di comando con Amazon Q Developer](run-CLI-transformations.md). 

Per configurare una trasformazione e autenticarti su Amazon Q Developer Pro, esegui:

```
qct configure
```

Per avviare una trasformazione per un aggiornamento Java, esegui il comando seguente: Infatti*<your-source-java-version>*, puoi inserire`JAVA_1.8`,`JAVA_8`, `JAVA_11``JAVA_17`, o`JAVA_21`. Perché*<your-target-java-version>*, puoi inserire uno `JAVA_17` o`JAVA_21`. `--source_version` e `--target_version` sono facoltativi. Il flag `--trust` abilita l’esecuzione di una trasformazione durante il controllo del codice per mantenere la sicurezza.

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

Per avviare una trasformazione per una conversione SQL, esegui:

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

Per vedere quale versione dello strumento da riga di comando per la trasformazione stai utilizzando, esegui:

```
qct -v
```

Per ricevere assistenza sulle trasformazioni, esegui:

```
qct -h
```

Per visualizzare la cronologia dei processi di trasformazione, esegui:

```
qct history
```

Per ulteriori informazioni sulla visualizzazione e la gestione della cronologia dei processi di trasformazione, consulta [Visualizzazione della cronologia dei processi nella riga di comando](transformation-job-history.md#cli-job-history).

# Esecuzione di una trasformazione nella riga di comando con Amazon Q Developer
<a name="run-CLI-transformations"></a>

Completa queste fasi per trasformare il codice nella riga di comando con lo strumento da riga di comando di Amazon Q Developer.

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

Prima di avviare una trasformazione nella riga di comando, è necessario che siano soddisfatti i prerequisiti seguenti:
+ Se stai aggiornando la versione di codice Java, il progetto soddisfa i [prerequisiti per l’aggiornamento delle versioni di Java con Amazon Q](code-transformation.md#java-upgrade-prerequisites).
+ Se stai convertendo SQL incorporato in un’applicazione Java, l’applicazione soddisfa i [prerequisiti per la conversione di SQL incorporato con Amazon Q](transform-sql.md#sql-transform-prereqs).
+ Python è installato nel tuo ambiente a riga di comando. Ecco come installare lo strumento da riga di comando. La versione minima di Python attualmente supportata è 3.12.
+ Stai eseguendo la trasformazione su macOS o Linux. 
+ La dimensione dell’applicazione è pari o inferiore a 2 GB. 
+ Se hai dipendenze specifiche che desideri aggiornare Amazon Q, hai configurato un file di [aggiornamento delle dipendenze](#step-3-dependency-upgrade-file).

## Fase 1: scegli il metodo di autenticazione e aggiungi le autorizzazioni
<a name="step-1-permissions-auth"></a>

Puoi autenticare il Centro identità IAM per eseguire trasformazioni nella riga di comando. Accertati di disporre delle autorizzazioni appropriate.

**Nota**  
Le chiavi gestite dal cliente non sono supportate per le trasformazioni eseguite nella riga di comando.

### Aggiunta di autorizzazioni
<a name="transform-CLI-add-permissions"></a>

L’identità IAM associata all’abbonamento Amazon Q Developer che stai utilizzando per l’autenticazione deve disporre delle autorizzazioni per eseguire le trasformazioni nella riga di comando. Prima di procedere, assicurati che la tua identità IAM disponga delle autorizzazioni definite in [Consenti agli utenti di eseguire trasformazioni nella riga di comando](id-based-policy-examples-users.md#id-based-policy-examples-allow-cli-transformations).

### Esegui l’autenticazione con il Centro identità IAM tramite un abbonamento Amazon Q Developer
<a name="auth-IdC"></a>

Per autenticarti con il Centro identità IAM, devi essere [abbonato ad Amazon Q Developer Pro come utente della forza lavoro](subscribe-users.md) dall’amministratore e devi fornire l’URL di avvio per l’autenticazione tramite l’abbonamento. Tu o il tuo amministratore potete trovare l’URL di avvio nella console Amazon Q Developer. Per ulteriori informazioni, consulta [Individuazione dell’URL di avvio da utilizzare con Amazon Q Developer](manage-account-details.md).

Per aggiungere le autorizzazioni necessarie, consulta [Aggiunta di autorizzazioni](#transform-CLI-add-permissions).

Fornisci l’URL iniziale in [Fase 4: configurazione e autenticazione](#step-4-configure-auth).

## Fase 2: installare gli strumenti
<a name="step-2-install"></a>



1. [Scarica lo strumento da riga di comando di Amazon Q per le trasformazioni](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.2.zip) e decomprimilo.

   Per scaricare una versione precedente dello strumento da riga di comando, consulta [Cronologia delle versioni](transform-CLI-versions.md).

1. Ti suggeriamo di configurare un ambiente virtuale in Python per installare lo strumento. Per creare un ambiente virtuale, apri una finestra di terminale nella directory in cui desideri installare lo strumento ed esegui:

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

1. Per attivare l’ambiente virtuale: 

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

1. Per installare lo strumento nella riga di comando, esegui il seguente comando con il percorso in cui hai decompresso lo strumento, in base all’architettura del tuo computer:

------
#### [ 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**  
Se utilizzi una versione precedente dello strumento da riga di comando per le trasformazioni, sostituisci la `1.2.2` con la [versione scaricata](transform-CLI-versions.md).

1. Per verificare che lo strumento sia stato installato, esegui:

   ```
   which qct
   ```

## Fase 3: creazione di un file di aggiornamento delle dipendenze (facoltativo)
<a name="step-3-dependency-upgrade-file"></a>

Puoi fornire ad Amazon Q un file di *aggiornamento delle dipendenze*, un file YAML che elenca le dipendenze del progetto e le versioni a cui eseguire l’aggiornamento durante una trasformazione. Fornendo un file di aggiornamento delle dipendenze, puoi specificare dipendenze di terze e prime parti che Amazon Q potrebbe altrimenti non conoscere per aggiornare.

Le dipendenze di prime parti si riferiscono alle librerie, ai plugin e ai framework gestiti dall’organizzazione e sono disponibili solo localmente o sulla rete privata dell’organizzazione. Amazon Q è in grado di accedere alle dipendenze proprietarie quando esegue le build nell’ambiente locale. Per ulteriori informazioni, consulta [Compilazione del codice nell’ambiente locale](transform-CLI.md#local-builds). Le dipendenze di terze parti sono disponibili pubblicamente o sono dipendenze open source che non sono esclusive della tua organizzazione.

Puoi specificare le dipendenze di prime parti che desideri aggiornare in un file YAML e Amazon Q le aggiorna durante l’aggiornamento JDK (ad esempio, da Java 8 a 17). Puoi avviare una trasformazione separata (da 17 a 17 o da 21 a 21) dopo l’aggiornamento iniziale di JDK per aggiornare le dipendenze di terze parti.

Una volta che Amazon Q ha eseguito un aggiornamento JDK minimo, puoi avviare una trasformazione separata per aggiornare tutte le dipendenze di terze parti. In alternativa, puoi specificare le dipendenze di terze parti e le relative versioni in un file YAML per aggiornare tali dipendenze solo durante la trasformazione dell’aggiornamento della libreria.

Amazon Q ti chiederà di fornire un file di aggiornamento delle dipendenze durante la trasformazione. Se desideri fornirne uno, assicurati innanzitutto di aver configurato correttamente il file. Nel file YAML sono obbligatori i seguenti campi:
+ name - Il nome del file di aggiornamento delle dipendenze.
+ description (facoltativo) - Una descrizione del file di aggiornamento delle dipendenze e per quale trasformazione.
+ dependencyManagement - Contiene l’elenco delle dipendenze e dei plugin da aggiornare.
+ dependencies - Contiene il nome e la versione delle librerie da aggiornare.
+ plugins - Contiene i nomi e le versioni dei plugin da aggiornare.
+ identifier - Il nome della libreria, del plugin o di un’altra dipendenza.
+ targetVersion - La versione della dipendenza a cui eseguire l’aggiornamento.
+ versionProperty (facoltativo) - La versione della dipendenza che stai definendo, impostata con il tag `properties` nel file `pom.xml` dell’applicazione.
+ originType - Indica se la dipendenza è di prima o terza parte, specificata da FIRST\$1PARTY o THIRD\$1PARTY.

Di seguito è riportato un esempio di file YAML per l’aggiornamento delle dipendenze e la configurazione richiesta per l’analisi di Amazon Q:

```
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"
```

## Fase 4: configurazione e autenticazione
<a name="step-4-configure-auth"></a>

Prima di iniziare una trasformazione, devi autenticarti con il Centro identità IAM e fornire i dettagli di configurazione per la trasformazione. 

1. Per avviare il processo di configurazione della trasformazione, esegui il comando seguente:

   ```
   qct configure
   ```

1. Ti viene richiesto di inserire un percorso JDK per ogni versione Java supportata. È sufficiente specificare il percorso del JDK della versione di origine dell’applicazione Java, non la versione di destinazione.

1. Successivamente, per autenticarti con il Centro identità IAM, ti viene richiesto di inserire l’URL iniziale del profilo di abbonamento Amazon Q Developer Pro.

   Poi, inserisci il Regione AWS luogo in cui ti sei iscritto nel seguente formato:`us-east-1`. Per un elenco delle regioni supportate, consulta [Regioni supportate](regions.md). Per un elenco dei codici delle Regioni, consulta [Endpoint regionali ](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) nella *Guida di Riferimenti generali di AWS *. 

1. Le tue preferenze di configurazione vengono salvate in un file configuration.ini. 

## Fase 5: eseguire una trasformazione
<a name="step-5-run-transformation"></a>

Scegli il tipo di trasformazione che stai eseguendo per visualizzare la configurazione e i comandi richiesti. 

**Nota**  
Non spegnere o chiudere il computer locale durante la trasformazione del codice, perché la compilazione lato client richiede una connessione di rete stabile.

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

**Modifica del piano di trasformazione**

Durante gli aggiornamenti della versione Java, Amazon Q genera un piano di trasformazione che puoi rivedere prima dell’inizio della trasformazione. Hai la possibilità di richiedere le seguenti modifiche al piano:
+ Quali librerie Amazon Q aggiorna, dall’elenco incluso nel piano
  + Prompt di esempio:
    + Aggiorna solo <dependency1>, <dependency2> e <dependency5>
    + Non aggiornare <dependency1> o <dependency2>
+ La versione di destinazione a cui aggiornare una libreria
  + Prompt di esempio:
    + Aggiorna <dependency> a questa versione invece di <version>
+ Quali fasi deve eseguire Amazon Q
  + Prompt di esempio:
    + Completa solo le fasi 1-7
    + Non eseguire le fasi 5-9
+ Aggiungi dipendenze aggiuntive per l’aggiornamento (solo un’opzione quando esegui l’aggiornamento a una versione JDK più recente)
  + Prompt di esempio:
    + Aggiorna anche <dependency1> a <version2>

**Aggiornamento del codice Java**

1. Esegui il comando seguente per avviare una trasformazione per un aggiornamento Java. Sostituisci `<path-to-folder>` con il percorso della cartella con il codice che stai trasformando e `<your-target-java-version>` con `JAVA_17` o`JAVA_21`.

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

   Opzioni di comando aggiuntive: 
   + Se stai specificando le dipendenze da aggiornare, aggiungi l’opzione `--dependency_upgrade_file` con il percorso del file di aggiornamento delle dipendenze.
   + Se non desideri rivedere o aggiornare il piano di trasformazione, aggiungi il flag `--no-interactive` al tuo comando. Amazon Q non ti chiederà feedback sul piano e non avrai la possibilità di richiedere modifiche.

1. La tua versione di Maven viene verificata prima dell’inizio della trasformazione. Se disponi almeno della versione minima supportata, viene visualizzato il seguente output: 

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

   Se non disponi di una versione di Maven supportata, è necessario aggiornarla per continuare. Per ulteriori informazioni, consulta [Prerequisiti](#CLI-transformation-prerequisites). 

1. Se non hai aggiunto il flag `--no-interactive`, Amazon Q ti chiederà di fornire un feedback sul piano di trasformazione. Puoi spiegare le modifiche che desideri apportare in linguaggio naturale inglese e Amazon Q aggiornerà il piano se è in grado di supportare le modifiche richieste. 

1. Amazon Q inizia la trasformazione. Produrrà aggiornamenti sullo stato durante tutta la trasformazione. Una volta completata, Amazon Q fornisce il percorso in cui vengono emessi i risultati della trasformazione, i log e i file di configurazione. 

   Il codice aggiornato verrà inviato al nuovo ramo creato da Amazon Q. Amazon Q eseguirà il commit del codice in uno o più commit, a seconda della selezione effettuata durante l’esecuzione di `qct configure`. 

1. Se stai eseguendo un’altra trasformazione dopo l’aggiornamento della versione di Java, avvia la seconda trasformazione nello stesso ramo in cui hai eseguito le modifiche dalla prima trasformazione. 

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

Prima di iniziare, assicurati di aver letto [Conversione di SQL incorporato in applicazioni Java con Amazon Q Developer](transform-sql.md) per comprendere i prerequisiti per questo tipo di trasformazione. 

1. Per convertire il codice SQL integrato, devi prima creare un file YAML contenente il percorso del file di metadati dello schema in [AWS DMS Schema Conversion](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-oracle-postgresql.html).

   Di seguito è riportato il formato richiesto del file: 

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

1. Esegui il comando seguente per avviare una trasformazione per una conversione SQL. Sostituisci `<path-to-folder>` con il percorso della cartella con il codice che stai trasformando e `<path-to-sql-config-file>` con il percorso del file YAML che hai creato nella fase 1.

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

1. Se Amazon Q trova più schemi nel file di metadati dello schema, interromperà la trasformazione e fornirà un elenco degli schemi rilevati. Scegli lo schema da utilizzare per la conversione SQL, quindi aggiungi un nuovo campo `schema: <schema-name>` al file YAML. 

1. Amazon Q inizia la trasformazione. Produrrà aggiornamenti sullo stato durante tutta la trasformazione. Una volta completata, Amazon Q fornisce il percorso in cui vengono emessi i risultati della trasformazione, i log e i file di configurazione. 

   Il codice aggiornato verrà inviato al nuovo ramo creato da Amazon Q.

------

## Metti in pausa o annulla una trasformazione
<a name="pause-cancel-CLI-transformations"></a>

Puoi scegliere di sospendere o annullare l’attuale processo di trasformazione. È possibile sospendere un processo di trasformazione per un massimo di 12 ore prima di riprenderlo nuovamente.

**Per sospendere o annullare un processo di trasformazione del codice**

1. Nel terminale CLI, premi **Ctrl\$1C** sulla tastiera.

1. Seleziona se vuoi mettere in pausa o annullare la trasformazione.
   + Immetti `1` se desideri mettere in pausa il processo di trasformazione del codice. È possibile riprendere il lavoro entro 12 ore per continuare la trasformazione del codice utilizzando il seguente comando QCT: ``qct transform --source_folder=≤/Path/Given/Originally/To/QCT>``.
   + Immetti `2` se desideri annullare il processo di trasformazione del codice.

# Risoluzione dei problemi delle trasformazioni nella riga di comando
<a name="troubleshooting-CLI-transformations"></a>

Le seguenti informazioni possono aiutare a risolvere i problemi più comuni durante la trasformazione delle applicazioni nella riga di comando con Amazon Q Developer.

## Perché il mio token di connessione non si aggiorna?
<a name="bearer-token-refresh"></a>

Se vedi il seguente errore, significa che devi aggiornare il token di connessione utilizzato per l’autenticazione.

```
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: '))))
```

Per risolvere questo errore, esegui il comando seguente:

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

Dopo aver rimosso il file di credenziali obsoleto, esegui nuovamente `qct transform` per riavviare la trasformazione.

## Perché non viene utilizzata la versione più recente dello strumento da riga di comando?
<a name="install-latest-version"></a>

Quando scarichi una nuova versione dello strumento da riga di comando per le trasformazioni, talvolta viene ancora utilizzata una versione precedente dello strumento.

Per utilizzare la versione più recente dello strumento, scarica la [versione più recente](transform-CLI-versions.md). Quindi esegui il seguente comando con il percorso in cui hai decompresso lo strumento, in base all’architettura del tuo computer:

------
#### [ 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**  
Se utilizzi una versione precedente dello strumento da riga di comando per le trasformazioni, sostituisci la `1.2.2` con la [versione](transform-CLI-versions.md) scaricata.

# Cronologia delle versioni dello strumento di trasformazione della riga di comando di Amazon Q Developer
<a name="transform-CLI-versions"></a>

Consulta le seguenti informazioni per i dettagli sulle versioni attuali e precedenti dello strumento di trasformazione della riga di comando Amazon Q Developer. La tabella include il link per il download, la data di rilascio e le note di rilascio per ciascuna versione. 


****  

| Versione | Data di rilascio | Note di rilascio | 
| --- | --- | --- | 
|   [1.2.2 (più recente)](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.2.zip)   | 26 febbraio 2026 | È stato aggiunto un banner promozionale per AWS Transform custom to QCT CLI. Visualizzazione del banner sull'esecuzione del comando Transform e sul testo di aiuto. Nuovo flag --skip-banner per sopprimere l'output del banner. | 
|   [1.2.1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.1.zip)   | 9 settembre 2025 | Estensione Maven aggiornata per includere il componente principale POMs di prima parte durante il caricamento iniziale del progetto | 
|   [1.2.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.0.zip)   | 7 agosto 2025 | È stato aggiunto il supporto per la visualizzazione della cronologia dei processi e per la visualizzazione della struttura dei moduli per i progetti Maven Java. | 
|   [1.1.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.1.0.zip)   | 21 luglio 2025 | Include il supporto per la raccolta della telemetria sulle trasformazioni. | 
|   [1.0.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.0.0.zip)   | 27 giugno 2025 | Lo strumento di trasformazione della riga di comando è generalmente disponibile e supporta l'autenticazione tramite AWS IAM Identity Center solo con un abbonamento Amazon Q Developer Pro. È stato aggiunto il supporto per gli abbonamenti nella Regione Europa (Francoforte). | 
|   [0.6.0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.6.0.zip)   | 6 giugno 2025 | Include il supporto per la fornitura di un file di aggiornamento delle dipendenze e l’iterazione del piano di trasformazione. | 
|   [0,5,2](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.2.zip)   | 16 aprile 2025 | Correzioni di bug per risolvere i problemi relativi alla ripresa dei processi e degli errori per le applicazioni con dipendenze di prime parti. | 
|   [0,5,1](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.1.zip)   | 13 marzo 2025 | Quando esegui l’autenticazione con IAM, non è più necessario fornire la Regione AWS. Include anche una correzione di bug per comprendere lo stato del processo nei log di output.  | 
|   [0,5,0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.5.0.zip)   | 28 febbraio 2025 | Include il supporto per l'autenticazione con IAM tramite. 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 febbraio 2025 | Correzione di bug che include il supporto per l'accesso alla posizione Regione AWS in cui è configurato l'abbonamento 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 febbraio 2025 | Include il supporto per l’aggiornamento delle applicazioni 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 febbraio 2025 | Include il supporto per la conversione di SQL integrato in applicazioni Java. | 
|   [0,2,0](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.2.0.zip)   | 3 febbraio 2025 | Include il supporto per la ricezione di codice Java aggiornato in più commit. | 
|  [0,10](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-0.1.0.zip)  | 27 novembre 2024 | Versione iniziale. Include il supporto per l’aggiornamento delle versioni del codice Java dalla riga di comando. | 

# Visualizzare la cronologia dei processi di trasformazione
<a name="transformation-job-history"></a>

Amazon Q offre una panoramica completa della cronologia dei processi di trasformazione Java, consentendoti di monitorare e rivedere i processi di trasformazione sia negli IDE che nella riga di comando.

La cronologia dei processi di trasformazione include le seguenti informazioni su un processo:
+ **Data**: quando è stato eseguito il processo di trasformazione
+ **Nome del progetto**: il nome del progetto che è stato trasformato
+ **Stato**: lo stato attuale del processo di trasformazione
+ **Durata**: quanto tempo è stato necessario per completare la trasformazione
+ **ID processo**: un identificatore univoco del processo di trasformazione
+ **Patch diff**: un link o un percorso al file patch diff finale che mostra tutte le modifiche al codice
+ **Riepilogo**: un link o un percorso al file di riepilogo della trasformazione con i dettagli sulle modifiche apportate

**Nota**  
Solo le trasformazioni eseguite dopo il rilascio di questa funzionalità saranno disponibili nella cronologia dei processi. Per la data di rilascio della funzionalità, consulta [Cronologia del documento Guida per l’utente di Amazon Q Developer](doc-history.md). 

## Visualizzazione della cronologia dei processi negli IDE
<a name="ide-job-history"></a>

**Nota**  
Al momento, questa funzionalità è disponibile solo in Visual Studio Code.

L’Hub di trasformazione in Visual Studio Code offre una visione completa della cronologia dei processi di trasformazione in Java. 

Una tabella nell’Hub di trasformazione elenca i 10 processi di trasformazione più recenti degli ultimi 30 giorni. Dalla tabella, è possibile accedere agli artefatti di trasformazione e aggiornare i processi per monitorare l’avanzamento e recuperare gli artefatti mancanti.

### Recupero degli artefatti di trasformazione
<a name="retrieve-artifacts"></a>

È possibile accedere agli artefatti di trasformazione, come le patch diff e i file di riepilogo, dalla tabella della cronologia dei processi. Scegli i link appropriati per aprire il file diff o il riepilogo nell’IDE.

Gli artefatti vengono archiviati localmente nella directory `.aws/transform`, quindi è anche possibile accedere agli artefatti di trasformazione già scaricati nei processi precedenti.

### Aggiornare lo stato del processo
<a name="refresh-jobs"></a>

È possibile aggiornare lo stato del processo dalla relativa tabella della cronologia. Aggiorna un processo non riuscito per ottenere uno stato aggiornato lato server che potrebbe non aver ancora raggiunto il server, ad esempio quando Amazon Q è in grado di riprendere un processo non riuscito. È anche possibile aggiornare i lavori completati per scaricare artefatti che potrebbero non essere ancora apparsi. 

### Come viene archiviata la cronologia dei processi per i processi eseguiti nell’IDE
<a name="ide-history-storage"></a>

Per Visual Studio Code, tutte le informazioni e gli artefatti del processo di trasformazione vengono archiviati localmente nella directory `.aws/transform`. L’archiviazione è organizzata come segue:

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

## Visualizzazione della cronologia dei processi nella riga di comando
<a name="cli-job-history"></a>

Per le trasformazioni nella riga di comando, il comando **qct history** fornisce l’accesso alla cronologia dei processi di trasformazione con opzioni di personalizzazione.

Per la CLI, le informazioni sulla cronologia dei processi di trasformazione vengono archiviate localmente nella directory `.aws/qcodetransform/history/`.

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

Il comando di base per visualizzare la cronologia dei processi di trasformazione è:

```
qct history
```

Per impostazione predefinita, questo comando visualizza i 10 processi di trasformazione più recenti, oltre a tutti i processi in pausa o in corso.

È inoltre possibile specificare quante voci della cronologia dei processi visualizzare con il flag **--limit**. Ad esempio, per mostrare 20 processi, esegui:

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

# Risoluzione dei problemi con le trasformazioni Java
<a name="troubleshooting-code-transformation"></a>

Le seguenti informazioni possono aiutare a risolvere i problemi più comuni durante la trasformazione delle applicazioni Java con Amazon Q Developer.

**Topics**
+ [Perché Amazon Q non riesce a caricare il mio progetto?](#project-upload-fail)
+ [Perché i miei comandi Maven non riescono?](#maven-commands-failing)
+ [Come faccio ad aggiungere Maven al mio `PATH`?](#add-maven-to-path)
+ [Perché Amazon Q non riesce a creare il mio codice?](#build-fail)
+ [Perché la mia trasformazione non è riuscita dopo 55 minuti?](#build-time-limit)
+ [Perché non riesco a scaricare il mio codice trasformato?](#download-code-fail)
+ [Come si accede ai log di trasformazione del codice?](#logs)
+ [Come trovo l’ID del processo di trasformazione?](#job-id)

## Perché Amazon Q non riesce a caricare il mio progetto?
<a name="project-upload-fail"></a>

Se il progetto non viene caricato, è probabile che sia dovuto a uno dei seguenti problemi. Consulta l’argomento che corrisponde all’errore visualizzato in Amazon Q. 

**Topics**
+ [Riduci le dimensioni del progetto](#reduce-project-size)
+ [Configura le impostazioni del proxy nell’IDE](#configure-proxy)
+ [Consenti l’accesso ad Amazon S3](#allowlist-s3-bucket)

### Riduci le dimensioni del progetto
<a name="reduce-project-size"></a>

Per trasformare il codice, Amazon Q genera un artefatto del progetto, che include il codice sorgente, le dipendenze del progetto e i log delle build. La dimensione massima degli artefatti del progetto per un processo di trasformazione è di 2 GB. Se viene visualizzato un errore relativo alla dimensione dell’artefatto del progetto, è necessario ridurre le dimensioni del progetto o provare a trasformare un progetto più piccolo. È possibile visualizzare la dimensione del file dell’artefatto del progetto nei log di trasformazione del codice. Per ulteriori informazioni, consulta [Come si accede ai log di trasformazione del codice?](#logs)

### Configura le impostazioni del proxy nell’IDE
<a name="configure-proxy"></a>

Per trasformare il codice, Amazon Q carica l’artefatto del progetto in un bucket Amazon S3 di proprietà del servizio. Parte del processo di caricamento prevede l’utilizzo di certificati SSL o TLS per stabilire la comunicazione tra Amazon S3 e il tuo IDE. Se utilizzi un server proxy, i certificati SSL o TLS utilizzati dal tuo server proxy devono essere attendibili, altrimenti Amazon Q non sarà in grado di caricare il tuo progetto. 

Se ricevi un errore relativo al proxy o ai certificati, probabilmente dovrai configurare l’IDE o il sistema operativo in modo che i certificati siano attendibili o che aggiorni altre impostazioni del proxy.

**Nota**  
Potresti inoltre riscontrare problemi non correlati ai certificati se utilizzi il server proxy o il firewall della tua organizzazione. Se completi le seguenti procedure per configurare i certificati e hai ancora problemi, contatta l’amministratore di rete per assicurarti di poter comunicare con Amazon S3 dal tuo IDE. Per ulteriori informazioni, consulta [Consenti l’accesso ad Amazon S3](#allowlist-s3-bucket). 

#### Configura i certificati in JetBrains
<a name="configure-proxy-JB"></a>

Per configurare l’ambiente di runtime Java (JRE) dell’IDE di JetBrains in modo che consideri attendibili i certificati SSL o TLS utilizzati dal server proxy, è necessario importare i certificati SSL o TLS nel file `cacerts` in JRE. Il file `cacerts` che contiene certificati root attendibili per connessioni sicure come HTTPS e SSL e fa parte delle impostazioni di sicurezza di JRE. Per importare un certificato, completa la procedura seguente. 

**Nota**  
Si raccomanda di eseguire un backup del file `cacerts` prima di modificarlo, poiché eventuali errori possono causare problemi con le connessioni sicure.

1. Determina il percorso del file `cacerts` in JRE. Il percorso del file `cacerts` nel JRE interno fornito con l’IDE di JetBrains dipende dal sistema operativo e dalla versione dell’IDE di JetBrains in uso. 

   Di seguito sono riportati alcuni esempi di percorsi del file `cacerts` nei sistemi operativi più comuni. Scegli il sistema operativo per vedere degli esempi.
**Nota**  
 `<JetBrains Installation Folder>` si riferisce alla directory in cui sono installati i prodotti JetBrains. In genere, questa directory viene scelta durante il processo di installazione.  
La `jbr` cartella rappresenta il pacchetto JRE fornito con JetBrains IDEs, che è una versione specifica di JRE personalizzata per l'uso con. JetBrains IDEs

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

   Il percorso del file `cacerts` per un IDE JetBrains installato su Windows è:

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

   Ad esempio, se hai installato un IDE JetBrains su Windows nella posizione predefinita, il percorso potrebbe essere:

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

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

   Il percorso del file `cacerts` per un IDE JetBrains installato su macOS è:

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

   Ad esempio, se hai installato un IDE JetBrains su macOS nella posizione predefinita, il percorso potrebbe essere:

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

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

   Il percorso del file `cacerts` per un IDE JetBrains installato su Linux è:

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

------

1. Determina il certificato da importare nel file `cacerts`. Il file del certificato ha in genere un’estensione di file `.cer`, `.crt` o `.der`. Se non sei sicuro dei certificati da aggiungere, contatta l’amministratore di rete.

1. Importa il certificato firmato nel keystore `cacerts`. È possibile farlo tramite il comando `keytool` di Java. 

   1. Apri un prompt dei comandi e inserisci il comando seguente:

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

   1. Per `<alias>`, puoi infatti aggiungere un nome per il certificato che stai importando per utilizzarlo in un secondo momento. Questa opzione è facoltativa.

   1. Per `<certificate_file>`, specifica il percorso del certificato che stai importando. Dovrebbe essere il percorso del file `.cer`, `.crt` o `.der` contenente il certificato.

   1. Per `<path_to_cacerts>`, specificare il percorso del file keystore `cacerts` salvato nella fase 1. Questo è il file in cui stai importando il certificato. 

   Ad esempio, se desideri importare un certificato denominato `my_certificate.cer` nel keystore `cacerts` del pacchetto JRE incluso in IntelliJ IDEA su Windows e desideri assegnare l’alias `myalias` al certificato, il comando potrebbe essere:

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

1. Durante il processo di importazione, ti verrà richiesto di inserire la password del keystore. La password predefinita per il keystore `cacerts` è `changeit`. 

1. Dopo aver eseguito il comando, ti verrà chiesto di considerare attendibile il certificato. Per confermare che il certificato è attendibile e completare l’importazione, inserisci `yes`.

1. Potrebbe inoltre essere necessario aggiungere i certificati all’IDE stesso, oltre al JRE. Per ulteriori informazioni, consulta [Certificati server](https://www.jetbrains.com/help/idea/settings-tools-server-certificates.html) nella documentazione di JetBrains.

#### Configura i certificati in Visual Studio Code
<a name="configure-proxy-VSC"></a>

Per configurare Visual Studio Code in funzione dell’attendibilità dei certificati SSL o TLS utilizzati dal server proxy, assicurati di aver configurato le seguenti impostazioni proxy per il sistema operativo.

##### Configura i certificati in Visual Studio Code in macOS
<a name="certs-mac"></a>

Configura le seguenti impostazioni proxy per Visual Studio Code in macOS.

##### Aggiungi certificati al tuo portachiavi macOS
<a name="w2aac11c16c17c13c23b7b9c11b5b1b5"></a>

Se non l’hai già fatto, devi aggiungere i certificati utilizzati dal server proxy al tuo portachiavi macOS. Per informazioni sull’aggiunta di certificati al portachiavi, consulta [Aggiungere certificati a un portachiavi utilizzando Accesso Portachiavi sul Mac](https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac) nel Manuale utente di Accesso Portachiavi.

##### Installa l'estensione Mac CA VSCode
<a name="w2aac11c16c17c13c23b7b9c11b5b1b7"></a>

L'[ VSCode estensione Mac CA](https://marketplace.visualstudio.com/items?itemName=linhmtran168.mac-ca-vscode) consente ad Amazon Q di accedere ai certificati che hai aggiunto a Keychain Access sul tuo Mac. 

Per installare l’estensione:

1. Cerca `mac-ca-vscode` nel pannello delle estensioni di VS Code e scegli **Installa**. 

1. Riavviare VS Code.

##### Aggiorna le impostazioni del proxy in VS Code in macOS
<a name="w2aac11c16c17c13c23b7b9c11b5b1b9"></a>

Aggiorna le seguenti impostazioni per assicurarti che VS Code sia configurato correttamente per il proxy. 

1. Apri le impostazioni in VS Code.

1. Inserire `proxy` nella barra di ricerca.

1. Nel campo **Http: Proxy**, aggiungi l’URL del proxy.

1. Deseleziona **Http: Proxy Strict SSL**.

1. Nell’elenco a discesa **Http: Proxy Support**, scegli **attivo**.

1. Nella barra di ricerca delle impostazioni, inserisci `http.experimental.systemCertificatesV2`. Seleziona **Http › Experimental: System Certificates V2**. 

##### Configura i certificati in Visual Studio Code su Windows
<a name="certs-windows"></a>

Configura le seguenti impostazioni proxy per Visual Studio Code su Windows.

##### Aggiungi il certificato come certificato root attendibile su Windows
<a name="w2aac11c16c17c13c23b7b9c11b5b3b5"></a>

Se non l’hai già fatto, devi aggiungere i certificati utilizzati dal server proxy all’archivio Certificati delle autorità di certificazione radice attendibili in Windows. Per creare un certificato, completa la procedura seguente: 

1. Apri lo strumento di ricerca o la finestra di comando Esegui. 

1. Inserisci il comando seguente per aprire lo strumento Gestione certificati:

   ```
   certmgr.msc
   ```

1. Scegli l’archivio **Certificati delle autorità di certificazione radice attendibili**.

1. Fai clic con il pulsante destro del mouse su **Certificati** scegli **Tutte le attività** e quindi **Importa**.

1. Segui le istruzioni fornite per importare il certificato proxy.

1. Dopo aver importato il certificato, conferma che è stato aggiunto. 

   Nell’archivio **Certificati delle autorità di certificazione radice attendibili** fai doppio clic su **Certificati**. Fai clic con il pulsante destro del mouse sul certificato aggiunto e scegli **Proprietà**. In **Scopi del certificato**, deve essere selezionata l’opzione **Abilita tutti gli scopi per questo certificato**.

##### Installa l'estensione Win-CA VSCode
<a name="w2aac11c16c17c13c23b7b9c11b5b3b7"></a>

L'[ VSCode estensione Win-CA](https://marketplace.visualstudio.com/items?itemName=ukoloff.win-ca) consente ad Amazon Q di accedere ai certificati che hai aggiunto ai Trusted Root Certificates in Windows. 

Per installare l’estensione:

1. Cerca `win-ca ` nel pannello delle impostazioni di VS Code.

1. Nell’elenco a discesa **Inserisci**, scegli **aggiungi**.

##### Aggiorna le impostazioni del proxy in Windows VS Code
<a name="w2aac11c16c17c13c23b7b9c11b5b3b9"></a>

Aggiorna le seguenti impostazioni per assicurarti che VS Code sia configurato correttamente per il proxy. 

1. Apri le impostazioni in VS Code.

1. Inserire `proxy` nella barra di ricerca.

1. Nel campo **Http: Proxy**, aggiungi l’URL del proxy.

1. Deseleziona **Http: Proxy Strict SSL**.

1. Nell’elenco a discesa **Http: Proxy Support**, scegli **attivo**.

1. Nella barra di ricerca delle impostazioni, inserisci `http.experimental.systemCertificatesV2`. Seleziona **Http › Experimental: System Certificates V2**. 

1. Riavviare VS Code.

### Consenti l’accesso ad Amazon S3
<a name="allowlist-s3-bucket"></a>

Durante una trasformazione, Amazon Q carica il codice in un bucket Amazon S3 di proprietà del servizio. Se la tua rete o organizzazione non ha configurato l’accesso ad Amazon S3, Amazon Q non è in grado di caricare il progetto. 

Per garantire che Amazon Q possa caricare il progetto, assicurati che la configurazione del proxy e gli altri componenti di rete, come le policy di prevenzione della perdita dei dati (DLP), siano configurati per consentire l’accesso ad Amazon S3. Potrebbe anche essere necessario creare un elenco dei bucket Amazon S3 consentiti in cui Amazon Q carica il progetto. Per ulteriori informazioni, consulta [Bucket URLs Amazon S3 e elenco dei dati consentiti ARNs](firewall.md#data-perimeters). 

Se trasformi un progetto di grandi dimensioni, le policy DLP o altri componenti di rete potrebbero causare ritardi e impedire il corretto caricamento se non sono configurati per inserire nell’elenco degli elementi consentiti il bucket Amazon S3. Se scegli di non inserire il bucket nell’elenco degli elementi consentiti, potresti dover trasformare un progetto più piccolo in modo che Amazon Q possa caricarlo.

## Perché i miei comandi Maven non riescono?
<a name="maven-commands-failing"></a>

Di seguito sono riportati i problemi di Maven configurazione che potresti riscontrare nella JetBrains e. Visual Studio Code IDEs Se risolvi i problemi e riscontri ancora degli errori Maven, il problema potrebbe riguardare il progetto. Utilizza le informazioni contenute nei log degli errori per risolvere eventuali problemi relativi al progetto, quindi prova a trasformarlo nuovamente. 

### Aggiorna la configurazione di Maven in JetBrains
<a name="jetbrains"></a>

Se una trasformazione non riesce in JetBrains a causa di problemi con il comando Maven, i log degli errori vengono visualizzati nella scheda **Esegui**. Utilizza le informazioni nei log per risolvere il problema. Di seguito sono riportati alcuni problemi che potresti dover risolvere: 
+ Assicurati che il percorso Maven principale sia impostato su **In bundle**. Nella finestra di dialogo **Impostazioni**, espandi la sezione **Creazione, esecuzione e implementazione**. Espandi la sezione **Strumenti di creazione**, quindi espandi **Maven**. Nell’elenco a discesa del **percorso principale di Maven**, scegli **In bundle**. 
+ Assicurati che l’ambiente di runtime Java (JRE) utilizzi il tuo progetto JDK. Nella finestra di dialogo **Impostazioni**, espandi la sezione **Creazione, esecuzione e implementazione**. Espandi **Maven** e scegli **Runner**. Nell’elenco a discesa **JRE**, scegli **Usa progetto JDK**. 
+ Assicurati che Maven sia abilitato. Vai su **Impostazioni** e scegli **Plugin**. Cerca Maven e quindi seleziona il plugin Maven. Se vedi un pulsante **Abilita**, sceglilo per abilitare Maven. 

### Aggiorna la configurazione di Maven in Visual Studio Code
<a name="vscode"></a>

Se una trasformazione non riesce in VS Code a causa di problemi con il comando Maven, si apre un file di testo contenente i log degli errori in una nuova scheda. Utilizza le informazioni nei log per risolvere il problema.

Assicurati di configurare una delle seguenti opzioni: 
+ Il progetto contiene un wrapper Maven nella cartella root del progetto
+ Una versione di Maven supportata da Amazon Q è disponibile su `PATH`

Per ulteriori informazioni, consulta [Come faccio ad aggiungere Maven al mio `PATH`?](#add-maven-to-path) 

## Come faccio ad aggiungere Maven al mio `PATH`?
<a name="add-maven-to-path"></a>

Per trasformare il codice in VS Code senza utilizzare un wrapper Maven, è necessario installare Maven e aggiungerlo alla variabile `PATH`. 

Per verificare se l’installazione di Maven è già stata eseguita correttamente, esegui `mvn -v` in un nuovo terminale del sistema operativo esterno a Visual Studio Code. Dovresti vedere un output con la tua versione di Maven.

Se ottieni un output nel terminale di Visual Studio Code ma non nel terminale del sistema operativo, o se il comando non viene trovato, devi aggiungere Maven a `PATH`.

 Per aggiungere Maven a `PATH`, segui le istruzioni del tuo computer.

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

Per aggiungere Maven al `PATH` di macOS, completa le seguenti fasi.

1. Individua la directory di installazione di Maven o la cartella in cui è stato installato Maven e salva il percorso di tale cartella.

1. Apri il file di configurazione per la tua shell in un editor a scelta. Per le versioni recenti di macOS, la shell predefinita è `zsh` e il file di configurazione predefinito si trova in `~/.zshrc`. 

   Aggiungi le seguenti righe in fondo al file di configurazione. Imposta il valore `M2_HOME` nel percorso salvato nella fase 1:

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

   Questi comandi rendono il comando `mvn` disponibile in tutti i terminali.

1. Chiudi tutte le finestre del terminale del sistema operativo e tutte le istanze di Visual Studio Code.

1. Per verificare che Maven sia stato aggiunto al tuo `PATH`, apri un nuovo terminale del sistema operativo ed esegui il seguente comando:

   ```
   mvn -v
   ```

   Dovresti vedere un output con la tua versione di Maven.

1. Dopo aver visto l’output di Maven, riavvia Visual Studio Code. Potrebbe anche essere necessario riavviare il computer. Apri un nuovo terminale in Visual Studio Code ed esegui i comandi seguenti: 

   ```
   mvn -v
   ```

   L’output deve essere identico a quello della fase 4. Se l’output di Visual Studio Code è diverso, prova quanto segue per assicurarti che la configurazione sia corretta:
   + Controlla la variabile `PATH` in Visual Studio Code. Un’estensione IDE potrebbe alterare il `PATH` in modo tale da renderlo diverso dalla variabile del `PATH` locale. Disinstalla l’estensione per rimuoverla dal `PATH`.
   + Controlla la tua shell predefinita in Visual Studio Code. Se è impostata su qualcosa di diverso da `zsh`, ripeti queste fasi per la shell.

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

Per aggiungere Maven al `PATH` di Windows, completa le seguenti fasi: 

1. Individua la directory di installazione di Maven o la cartella in cui è stato installato Maven e salva il percorso di tale cartella.

1. Apri la finestra Variabili di ambiente:

   1. Scegli il pulsante Windows per aprire la barra di ricerca.

   1. Entra in `Edit environment variables for your account` e sceglilo.

1. Nella finestra **Variabili di ambiente**, cerca la variabile Path. Se hai già una variabile Path, scegli **Modifica...** per aggiornarla. Se non vedi una variabile Path, scegli **Nuovo...** per aggiungerne una. 

1. Nella finestra **Modifica variabile di ambiente** che appare, fai doppio clic sul percorso esistente per modificarlo oppure scegli **Nuovo** per aggiungere una nuova voce di percorso.

   Sostituisci la voce del percorso Maven esistente con il percorso salvato nella fase 1 o aggiungi il percorso come nuova voce. Alla fine del percorso, aggiungi `\bin` come suffisso, come nell’esempio seguente:

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

1. Scegli **OK** per salvare l’immissione del percorso, quindi scegli nuovamente **OK** nella finestra **Variabili di ambiente**.

1. Apri un nuovo prompt dei comandi ed eseguire il comando seguente:

   ```
   mvn -v
   ```

   Dovresti vedere un output con la tua versione di Maven.

------

## Perché Amazon Q non riesce a creare il mio codice?
<a name="build-fail"></a>

Se la trasformazione non riesce durante la creazione del codice da parte di Amazon Q, il progetto potrebbe non essere configurato correttamente per l’ambiente in cui Amazon Q crea il codice. Potrebbe essere necessario aggiornare la configurazione della build o l’implementazione del codice.

Esamina l’output del log della build fornita da Amazon Q per determinare se sono presenti delle modifiche che puoi apportare al progetto. Di seguito sono riportati alcuni problemi comuni che potrebbero impedire ad Amazon Q di creare il codice. 

### Rimuovi i percorsi assoluti in pom.xml
<a name="remove-absolute-path"></a>

Se è presente un percorso assoluto nel tuo file pom.xml, Amazon Q non sarà in grado di trovare i file pertinenti e, di conseguenza, potrebbe non essere in grado di creare il codice.

Di seguito è riportato un esempio di percorso assoluto che potresti ritrovare nel tuo file `pom.xml`:

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

Invece di utilizzare un percorso assoluto, puoi creare un percorso relativo utilizzando un puntatore. Di seguito è riportato un esempio di come è possibile sostituire il percorso assoluto precedente con un percorso relativo:

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

### Rimuovi i database locali o esterni nei test di unità
<a name="remove-external-databases"></a>

Amazon Q esegue tutti i test di unità del tuo progetto quando crea il codice. Se un test di unità richiama un database locale o esterno, Amazon Q non avrà accesso al database, causando un errore di compilazione. Per evitare che la compilazione non riesca, devi rimuovere la chiamata al database dal test di unità o rimuovere il test di unità prima di inviare la trasformazione. 

## Perché la mia trasformazione non è riuscita dopo 55 minuti?
<a name="build-time-limit"></a>

Se il processo di trasformazione del codice non riesce dopo 55 minuti, è probabile che il tempo di compilazione del codice superi il limite di compilazione. Attualmente è previsto un limite di tempo di 55 minuti per la creazione del codice. 

Se il tempo di compilazione locale richiede 55 minuti o più, riduci il tempo di compilazione del progetto per trasformare il codice. Se la compilazione locale è più veloce di quella effettuata con Trasformazione del codice, controlla se nel progetto sono presenti attività che potrebbero non riuscire o richiedere più tempo in un ambiente diverso. Prendi in considerazione la possibilità di disabilitare i casi di test di lunga durata. Valuta anche la possibilità di utilizzare dei timeout per i tentativi di accesso a risorse che potrebbero non essere disponibili nell’ambiente IDE sicuro o su Internet. 

## Perché non riesco a scaricare il mio codice trasformato?
<a name="download-code-fail"></a>

Se non riesci a scaricare il codice dopo il completamento della trasformazione, probabilmente si tratta di uno dei seguenti problemi. Consulta l’argomento che corrisponde all’errore visualizzato in Amazon Q. 

**Topics**
+ [Riduci le dimensioni del progetto](#reduce-project-size-output)
+ [Scarica il codice diff entro 30 giorni](#download-30-hrs)
+ [Configura le impostazioni del proxy nell’IDE](#configure-proxy-download)
+ [Rimuovi i caratteri jolly nelle impostazioni proxy di JetBrains](#remove-wildcard)

### Riduci le dimensioni del progetto
<a name="reduce-project-size-output"></a>

Una volta completata la trasformazione, Amazon Q genera un artefatto di output che contiene un diff con il codice aggiornato e un riepilogo della trasformazione con informazioni sulle modifiche apportate. L’artefatto di output deve essere pari o inferiore a 1 GB per consentire all’IDE di scaricarlo. 

Se l’artefatto di output supera il limite, non sarai in grado di scaricare il codice aggiornato o il riepilogo della trasformazione. Prova a trasformare un progetto più piccolo per evitare un artefatto di output di grandi dimensioni. Se il problema persiste, contatta Supporto. Per informazioni su come contattare Supporto Amazon Q, consulta[Utilizzo di Amazon Q Developer per chattare con Supporto](support-chat.md).

### Scarica il codice diff entro 30 giorni
<a name="download-30-hrs"></a>

Il file code diff con il codice aggiornato è disponibile solo per 30 giorni dopo il completamento della trasformazione. Se sono trascorsi più di 30 giorni dal completamento della trasformazione, riavvia la trasformazione per scaricare il file diff.

### Configura le impostazioni del proxy nell’IDE
<a name="configure-proxy-download"></a>

Amazon Q scarica il codice aggiornato da un bucket Amazon S3 di proprietà del servizio. Parte del processo di download prevede l’utilizzo di certificati SSL o TLS per stabilire la comunicazione tra Amazon S3 e il tuo IDE. Se utilizzi un server proxy, i certificati SSL o TLS utilizzati dal tuo server proxy devono essere attendibili, altrimenti Amazon Q non sarà in grado di caricare il tuo progetto.

Per scaricare il codice, potrebbe essere necessario configurare l’IDE in modo che consideri attendibili i certificati o aggiornare altre impostazioni del proxy. Per ulteriori informazioni o per l’aggiornamento delle impostazioni del proxy, consulta [Configura le impostazioni del proxy nell’IDE](#configure-proxy).

### Rimuovi i caratteri jolly nelle impostazioni proxy di JetBrains
<a name="remove-wildcard"></a>

Se hai configurato le impostazioni proxy nell’IDE di JetBrains, potresti visualizzare il seguente errore durante il download del codice aggiornato: 

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

Ciò è probabilmente causato dalla presenza di un carattere jolly (\$1) nel campo **Nessun proxy per** delle impostazioni proxy dell’IDE. L’SDK Java utilizzato da Amazon Q non supporta le voci con caratteri jolly in questo campo. 

Per scaricare il codice, rimuovi eventuali caratteri jolly dal campo **Nessun proxy per**, quindi riavvia l’IDE. Se devi specificare degli host che devono ignorare il proxy, usa un’espressione regolare anziché un jolly. Per aggiornare le impostazioni del proxy nel tuo JetBrains IDE, consulta [Proxy HTTP](https://www.jetbrains.com/help/idea/settings-http-proxy.html) nella JetBrains documentazione.

## Come si accede ai log di trasformazione del codice?
<a name="logs"></a>

### Log di accesso in JetBrains
<a name="jetbrains-logs"></a>

Per informazioni su come accedere ai file di log di JetBrains, consulta [Locating IDE log files](https://intellij-support.jetbrains.com/hc/en-us/articles/207241085-Locating-IDE-log-files) nella documentazione di JetBrains. 

Per trovare i log emessi da Amazon Q in JetBrains, cerca nei log IDE la seguente stringa:

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

I log di trasformazione del codice iniziano con la stringa precedente. I log generati da Maven vengono visualizzati nella scheda **Esegui** e presentano la stringa precedente prima e dopo la voce di log. 

### Log di accesso in Visual Studio Code
<a name="vsc-logs"></a>

Per trovare i log emessi da Amazon Q in VS Code, completa le fasi seguenti:

1. Scegli **Visualizza** nella barra di navigazione in alto, quindi scegli **Tavolozza dei comandi**.

1. Cerca `Amazon Q: View Logs` nella tavolozza dei comandi che appare.

1. I log si aprono nell’IDE. Per cercare i file di log in `CodeTransformation`, usa `CMD + F` o `Control + F`. 

I log della trasformazione del codice in VS Code hanno il prefisso `CodeTransformation:`. Di seguito è riportato un esempio di log generato in VS Code per un errore relativo alle dipendenze di copia di Maven:

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

## Come trovo l’ID del processo di trasformazione?
<a name="job-id"></a>

### Trova l’ID del processo in JetBrains
<a name="jetbrains"></a>

Per trovare un ID del processo di trasformazione in JetBrains, vai alla scheda **Dettagli trasformazione** nell’**Hub trasformazione** e scegli l’icona **Mostra stato del processo** (clock). 

### Trova l’ID del processo in Visual Studio Code
<a name="vs-code"></a>

Per trovare un ID del processo di trasformazione in VS Code, vai all’**Hub trasformazione** e scegli l’icona **Mostra stato del processo** (clock). 