Come Amazon Q Developer trasforma il codice per gli aggiornamenti del linguaggio Java - Amazon Q Developer

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

Come Amazon Q Developer trasforma il codice per gli aggiornamenti del linguaggio Java

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

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

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

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

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 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 e Workspace context per includere più parti del tuo progetto come contesto e ricevere suggerimenti per più file contemporaneamente.