In che modo 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à.

In che modo 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 in linguaggio di codice del progetto. Dopo aver trasformato il codice, fornisce un riepilogo della trasformazione e una differenza di file per consentirti di esaminare le modifiche prima di accettarle. Le seguenti sezioni forniscono maggiori dettagli su come Amazon Q esegue la trasformazione.

Creazione del codice e creazione di un piano di trasformazione

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

Dopo aver generato l'elemento di build, 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.

Prima che inizi la trasformazione, hai la possibilità di suddividere le modifiche proposte da Amazon Q in più differenze. Ciò ti consente di aggiornare e testare il codice con meno modifiche alla volta e ti richiederà di accettare le modifiche in modo incrementale una volta completata la trasformazione.

Trasformazione del codice

Per trasformare il codice, Amazon Q tenta di aggiornarlo in base alle modifiche proposte nel piano di trasformazione. Man mano che apporta modifiche, ricostruisce ed esegue i test unitari esistenti nel codice sorgente per correggere in modo iterativo eventuali errori riscontrati.

Amazon Q tenta di apportare le seguenti modifiche durante l'aggiornamento del codice:

  • Aggiorna i componenti di codice obsoleti in base ai consigli di Java 17

  • Aggiorna le librerie e i framework più diffusi a una versione compatibile con Java 17. Ciò include l'aggiornamento delle seguenti librerie e framework alle ultime versioni principali disponibili:

    • Apache Commons IO

    • Apache HttpClient

    • bc-fips

    • Cetriolo-JVM

    • Ibernazione

    • jackson-annotations

    • Jakarta Aee

    • Javax

    • javax.servlet

    • jaxb-api

    • jaxb-impl

    • jaxen

    • jcl-over-slf4j

    • json semplice

    • jsr305

    • unità

    • junit-jupiter-api

    • Log4j

    • Micronauta

    • Mockito

    • mockito-core

    • Okio

    • PowerMockito

    • Quarkus

    • slf4j

    • slf4j-api

    • Stivale a primavera

    • Struttura primaverile

    • Sicurezza primaverile

    • spavalderia

    • test

Revisione del riepilogo della trasformazione e accettazione delle modifiche

Una volta completata la trasformazione, Amazon Q fornisce un riepilogo della trasformazione con dettagli sulle modifiche apportate, incluso lo stato della build finale che indica se l'intero progetto è stato aggiornato. Puoi anche visualizzare un riepilogo del registro 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 alla fine per aggiornare il codice, nonché eventuali modifiche aggiuntive non incluse nel piano originale.

Dopo aver esaminato il riepilogo della trasformazione, puoi visualizzare le modifiche proposte da Amazon Q in una visualizzazione differenziale 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 24 ore dopo il completamento della trasformazione.

Se hai scelto di suddividere le modifiche in più differenze, Amazon Q fornirà una o più differenze con le modifiche, a seconda degli aggiornamenti richiesti per la tua applicazione. Se applicabili alla tua applicazione, le modifiche sono classificate nei seguenti gruppi:

  • Versioni minime delle librerie compatibili con Java 17: aggiorna le dipendenze, incluso Springboot JUnit PowerMockito, e alle versioni minime compatibili in Java 17.

  • Framework applicativi con specifiche aziendali più diffusi: aggiorna i framework applicativi e aziendali più diffusi come Jakarta EE, Hibernate e Micronaut 3.

  • Framework web di utilità client HTTP: aggiorna le librerie client HTTP, le utilità Apache Commons e i framework Struts.

  • Framework di strumenti di test: aggiorna strumenti di test come Mockito e crea strumenti come Jenkins e Maven ArchUnit Wrapper. TestContainers

  • Documentazione di elaborazione varia: diversi tipi di aggiornamenti ORMs, tra cui elaborazione XML e documentazione API come Swagger a /OpenAPI. SpringDoc

  • Dipendenze e formattazione obsolete e obsolete: sostituite quelle obsolete APIs, aggiornate ulteriormente le versioni delle dipendenze e modificate il codice di formattazione APIs

Amazon Q fornirà un file diff alla volta e devi accettare le modifiche in una differenza per esaminare la differenza seguente. Se rifiuti le modifiche in una differenza, non sarai in grado di rivedere altre differenze. Dopo aver accettato le modifiche da una differenza, puoi rivedere gli aggiornamenti al codice e testare le modifiche prima di continuare ad accettare le modifiche successive.

Tieni presente che potrebbero esserci piccoli downgrade di versione tra le differenze. Ad esempio, potresti vedere una versione di dipendenza aggiornata a una versione più recente nella prima differenza e in una differenza successiva vedere una versione precedente della dipendenza. Questo perché Amazon Q potrebbe dover modificare le versioni per adattarle alle modifiche apportate a ciascuna differenza. Dopo aver accettato le modifiche da tutte le differenze, il codice conterrà le versioni affidabili più recenti.

Il titolo del diff indicherà se le modifiche proposte comporteranno una trasformazione totale o parziale. Se il diff indica che la trasformazione è avvenuta solo parzialmente, allora non include tutte le modifiche necessarie per una trasformazione completa e una corretta compilazione del codice. Per ottenere la versione più aggiornata del codice, accetta tutte le differenze di codice, comprese quelle parzialmente riuscite. Quindi, puoi aggiornare manualmente il codice per correggere gli errori che Amazon Q non è stato in grado di correggere.

Completamento di trasformazioni parzialmente riuscite

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

Per aiutarti a trasformare il resto del codice, puoi usare la chat di Amazon Q nell'IDE. 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 /deve @workspaceincludere più parti del tuo progetto come contesto e ricevere suggerimenti per più file contemporaneamente.