Guida introduttiva: Aggiornare un progetto Java con la modernizzazione fornita da GitHub Copilot

La modernizzazione con GitHub Copilot offre un'esperienza agentica basata sull'IA che automatizza in modo completo i flussi di lavoro per l'aggiornamento di Java, dall'analisi del progetto e dalla generazione del piano fino alla trasformazione del codice, alla validazione della compilazione e alla correzione delle vulnerabilità CVE.

Scenari di aggiornamento supportati

  • Aggiornare Java Development Kit (JDK) a Java 11, 17, 21 o 25.
  • Aggiornare Spring Boot alla versione 4.0.
  • Aggiornare Spring Framework alla versione 7.x.
  • Aggiornare Java EE a Jakarta EE, fino a Jakarta EE 11.
  • Aggiornare Azure SDK per Java.
  • Aggiornare JUnit.
  • Aggiornare le dipendenze di terze parti a una versione specificata.

Prerequisiti

  • Un account GitHub con GitHub Copilot abilitato. È necessario un piano Gratuito, Pro, Pro+, Business o Enterprise.
  • Java JDK per le versioni JDK di origine e di destinazione.
  • Maven o Gradle per compilare progetti Java.
  • Un progetto di Java gestito da Git usando Maven o Gradle.
  • Per i progetti basati su Maven: accesso al repository Maven Central pubblico.
  • Installare l'interfaccia della riga di comando GitHub Copilot:

    npm install -g @github/copilot
    
  • Installare il plug-in di modernizzazione GitHub Copilot:

    copilot plugin marketplace add microsoft/modernize-java
    copilot plugin install modernize-java@modernize-java
    

Annotazioni

Un account Azure è necessario solo per la distribuzione di risorse in Azure e non è necessario quando si usa GitHub Copilot modernizzazione per apportare modifiche al codice.

Se si usa Gradle, è supportato solo il wrapper Gradle versione 5 o successiva.

Il linguaggio DSL (Domain Specific Language) di Kotlin non è supportato.

Selezionare un progetto di Java da aggiornare

Per questa esercitazione, scegliere uno dei repository di esempio seguenti:

Avviare l'aggiornamento

Per avviare il processo di aggiornamento, seguire questa procedura:

  1. Aprire il progetto di Java selezionato in Visual Studio Code.

  2. Nella barra laterale, apri il pannello GitHub Copilot modernization per vedere la pagina QuickStart.

  3. Seleziona Upgrade Java Runtime & Frameworks.

    Questa azione apre GitHub Copilot Chat in modalità agente e avvia automaticamente il processo di aggiornamento.

    Suggerimento

    È anche possibile selezionare un'attività specifica dall'albero Attività sotto il pannello Avvio rapido (ad esempio , Aggiorna versione spring boot o Aggiorna versione di Jakarta EE) per attivare un aggiornamento di destinazione.

    In alternativa, è possibile digitare direttamente in GitHub Copilot Chat usando la modalità agente, ad esempio "Aggiornare il progetto di Java a Java 21" per avviare l'aggiornamento.

Schermata di Visual Studio Code che mostra la pagina QuickStart con il pulsante Upgrade Java Runtime & Frameworks.

Per avviare il processo di aggiornamento, seguire questa procedura:

  1. Aprire il progetto di Java selezionato in IntelliJ IDEA.

  2. Nella barra laterale, apri il pannello GitHub Copilot Modernization per vedere la pagina QuickStart.

  3. Selezionare Aggiorna runtime e framework.

    Questa azione apre GitHub Copilot Chat in modalità agente e avvia automaticamente il processo di aggiornamento.

    Suggerimento

    È anche possibile digitare direttamente in GitHub Copilot Chat usando la modalità agente, ad esempio "Aggiornare il progetto di Java a Java 21" per avviare l'aggiornamento.

Screenshot di IntelliJ IDEA che mostra il pannello di modernizzazione GitHub Copilot con le attività di aggiornamento e il pannello Chat che esegue il processo di aggiornamento.

Per avviare il processo di aggiornamento, seguire questa procedura:

  1. Aprire un terminale e passare alla directory del progetto Java.

  2. Eseguire il comando di aggiornamento:

    copilot --model claude-sonnet-4.6 --agent modernize-java:modernize-java
    
  3. Dopo l'avvio dell'agente, digitare la richiesta di aggiornamento:

    upgrade to Java 21 + Spring Boot 3.5.x
    

Schermata di un terminale che mostra la CLI di Copilot mentre avvia un aggiornamento di Java con l'agente modernize-java.

Selezionare le destinazioni di aggiornamento

Dopo aver avviato l'aggiornamento, l'agente chiede di selezionare le versioni di destinazione. Scegliere la versione di Java desiderata e, se applicabile, la versione spring boot per il progetto.

Esaminare e modificare il piano di aggiornamento

GitHub Copilot modernizzazione analizza il progetto Java nell'area di lavoro corrente, tra cui JDK, strumenti di compilazione e dipendenze. Lo strumento genera un file plan.md che include:

  • Strumenti disponibili : sono stati rilevati JDK e strumenti di compilazione nell'ambiente in uso.
  • Linee guida : vincoli specificati dall'utente per il processo di aggiornamento.
  • Opzioni : ramo di lavoro e configurazione di test.
  • Obiettivi di aggiornamento : versioni di origine e di destinazione per ogni componente.
  • Stack di tecnologie : analisi della compatibilità delle dipendenze con motivi di incompatibilità.
  • Aggiornamenti derivati: aggiornamenti aggiuntivi richiesti dalle destinazioni primarie, ad esempio javax → migrazione dello spazio dei nomi jakarta durante l'aggiornamento a Spring Boot 3.x.
  • Analisi dell'impatto : suddivisione dettagliata delle modifiche alle dipendenze, modifiche al codice sorgente, modifiche alla configurazione, modifiche di CI/CD e rischi.
  • Passaggi di aggiornamento : passaggi di migrazione ordinati con criteri razionali e di verifica.

Esaminare il piano e apportare modifiche, se necessario, quindi confermare di procedere. Per altre informazioni sulla personalizzazione, vedere Personalizzare il piano di aggiornamento.

Suggerimento

Assicurarsi che il piano corrisponda alle destinazioni di aggiornamento desiderate, ad esempio Java 8 a Java 21, Spring Boot 1.5 a 3.5.

Eseguire l'aggiornamento

Dopo aver confermato il piano, l'agente procede automaticamente con la fase di trasformazione del codice. Come parte di questo processo, esegue le attività seguenti:

  • Modifica il codice e i file di configurazione per garantire la compatibilità con le versioni di destinazione.
  • Esegue la convalida della compilazione per verificare che il progetto venga compilato correttamente in ogni passaggio.
  • Esegue la convalida dei test se abilitata nelle opzioni del piano.

L'agente esegue l'iterazione di ogni passaggio di aggiornamento fino al completamento di tutti i passaggi. È possibile monitorare lo stato di avanzamento in qualsiasi momento controllando il file progress.md nell'editor.

Convalida e correzione CVE

Al termine dei passaggi di trasformazione del codice, l'agente analizza automaticamente le dipendenze per individuare problemi comuni di vulnerabilità ed esposizioni (CVE). Se vengono rilevati CVE, l'agente li corregge aggiornando le dipendenze interessate. Non è necessario alcun intervento manuale. Il passaggio di convalida finale viene quindi eseguito per confermare che tutti gli elementi vengono ancora compilati e superati i test dopo le correzioni CVE.

Visualizzare il riepilogo

Dopo l'aggiornamento, lo strumento genera un file summary.md , che include:

  • Sintesi esecutiva — una sintesi in un paragrafo degli aggiornamenti effettuati e dei risultati ottenuti.
  • Miglioramenti dell'aggiornamento : una tabella di confronto prima/dopo con i vantaggi principali.
  • Compilazione e convalida : stato della compilazione e risultati dei test.
  • Limitazioni: eventuali problemi non risolti rimanenti dopo l'aggiornamento.
  • Passaggi successivi consigliati : azioni di follow-up suggerite, ad esempio la generazione di unit test o l'indirizzamento di eventuali CVE rimanenti senza prefisso.
  • Dettagli aggiuntivi : metadati del progetto, modifiche al codice e risultati dell'analisi CVE.

Passo successivo

Quickstart: generare test unitari con la modernizzazione GitHub Copilot