Modernizzare le app Java usando la modernizzazione di GitHub Copilot nel CLI di Copilot

Questo articolo offre una panoramica del modo in cui gli sviluppatori Java possono modernizzare le applicazioni usando il plug-in GitHub Copilot modernizzazione in Copilot cli. Usando questo approccio, gli sviluppatori possono modernizzare le applicazioni ovunque codiceno. Il plug-in offre un'esperienza end-to-end senza problemi, dall'aggiornamento e dalla migrazione alla distribuzione, consentendo ai team di accelerare la trasformazione, aumentare la produttività e spostare in modo sicuro le applicazioni in piattaforme moderne.

Screenshot della CLI di GitHub Copilot che mostra un prompt di modernizzazione di GitHub Copilot.

Annotazioni

GitHub Copilot CLI è disponibile con i piani GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business e GitHub Copilot Enterprise. Se si riceve il Copilot da un'organizzazione, il criterio CLI di Copilot deve essere abilitato nelle impostazioni dell'organizzazione.

Usando Copilot interfaccia della riga di comando per la modernizzazione, è possibile eseguire attività di modernizzazione direttamente dal terminale, senza dover passare a un IDE. Questo approccio supporta sia flussi di lavoro interattivi a controllo umano, sia flussi di lavoro batch.

Cosa puoi fare

Capability Description
Aggiornamento Java Aggiornare Java versione (8 → 11 → 17 → 21 → 25), eseguire la migrazione di Spring Boot 2.x a 3.x, javax a jakarta e API deprecate
migrazione di Azure Valutare ed eseguire la migrazione di applicazioni Java ai servizi di Azure (bus di servizio di Azure, Azure SQL, Redis, Azure Key Vault, Application Insights, Identità gestita)
CVE e correzione delle vulnerabilità Analizzare e correggere le vulnerabilità CVE nelle dipendenze Maven, tra cui Log4j, Spring, Jackson e analisi delle dipendenze OWASP
Riprogettazione dell'applicazione Riscritture strutturali, ad esempio la scomposizione da monolith a microservizi, la modernizzazione dell'interfaccia utente legacy e l'estrazione di moduli
Distribuzione in Azure Distribuire applicazioni Java aggiornate o migrate direttamente in Azure

Prerequisiti

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.

Installare il plug-in

  1. Aggiungere il marketplace e installare il plug-in:

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  2. Verificare che il plug-in sia installato elencando i plug-in installati:

    /plugin list
    

    Dovresti vedere github-copilot-modernization@github-copilot-modernization nell'elenco.

Suggerimento

Per aggiornare il plug-in quando è disponibile una nuova versione, eseguire:

copilot plugin update github-copilot-modernization@github-copilot-modernization

Avviare un'attività di modernizzazione

Opzione 1: Iniziare direttamente con l'agente

Passa alla cartella del progetto Java e avvia Copilot CLI con l'agente per la modernizzazione:

cd /path/to/your/java-app
copilot --agent=github-copilot-modernization:modernize

Opzione 2: Selezionare l'agente dall'interfaccia della riga di comando di Copilot

Se si è già in una sessione dell'interfaccia della riga di comando di Copilot, usare il comando /agent per passare all'agente di modernizzazione:

/agent

Selezionare modernize dall'elenco.

Importante

È necessario selezionare l'agente github-copilot-modernization:modernize prima di eseguire richieste di modernizzazione. Se non si seleziona l'agente, Copilot CLI usa l'agente predefinito, che non può sfruttare l'orchestrazione multi-agente completa e le funzionalità specializzate di migrazione fornite dal plugin.

Esegui un prompt di modernizzazione

Quando l'agente è attivo, descrivere ciò che si vuole nel linguaggio naturale:

modernize my application

Oppure essere più specifici:

upgrade this app to Java 21 and Spring Boot 3.2
migrate this Spring Boot app to Azure
fix CVE vulnerabilities in my project

Per l'esecuzione automatica, usare il --allow-all flag :

copilot --agent=github-copilot-modernization:modernize --allow-all

Funzionamento del flusso di lavoro

Il plug-in usa un flusso di lavoro in tre fasi che viene eseguito automaticamente. Non è necessario richiamare manualmente ogni fase. L'agente di orchestrazione gestisce il routing in base alla richiesta.

Fase 1: Valutazione

  • Individua applicazioni Java nel percorso specificato.
  • Analizza dipendenze, framework e la versione di Java.
  • Identifica opportunità e rischi per la modernizzazione.
  • Salva i risultati in .github/modernize/assessment/.

Fase 2: Pianificazione

  • Carica i risultati della valutazione.
  • Genera un piano attività eseguibile.
  • Salva il piano su .github/modernize/<app>/plan.md e tasks.json.

Fase 3: Esecuzione

  • Indirizza le attività agli agenti executor specializzati in base al tipo di attività.
  • Ogni executor esegue una query su una Knowledge Base per i modelli di migrazione.
  • Monitora l'avanzamento con nuovi tentativi automatici in caso di errore.
  • Crea commit dettagliati per ciascuna attività per la revisione.

L'orchestratore supporta più punti d'ingresso a seconda dell'obiettivo:

Flusso di lavoro Quando viene attivato Che succede
Intento generale "modernizzare l'applicazione" Valutazione completa → pianificare → eseguire la pipeline
Attività specifica "eseguire l'aggiornamento a Java 21" Ignora la valutazione, passa direttamente al piano → eseguire
Eseguire un piano esistente "eseguire il piano" Ignora la valutazione e la pianificazione, esegue un piano esistente
Headless Esecuzione non assistita con --allow-all Uguale a una finalità generale senza richieste dell'utente

Scenari comuni

Aggiornare l'applicazione Java

Per aggiornare l'applicazione Java a una versione di runtime o framework più recente, usare l'esempio seguente:

copilot --agent=github-copilot-modernization:modernize
upgrade this project to JDK 21 and Spring Boot 3.2

L'attività di modernizzazione viene quindi eseguita, inclusa la generazione del piano di aggiornamento, l'esecuzione di correzioni del codice, la compilazione del progetto e il controllo delle vulnerabilità, come illustrato nello screenshot seguente:

Screenshot dell'interfaccia della riga di comando di GitHub Copilot che mostra le attività in esecuzione in scenari di aggiornamento Java

Il progetto viene aggiornato correttamente a JDK 21 e Spring Boot 3.2 e viene visualizzato un riepilogo dell'aggiornamento.

Screenshot dell'interfaccia della riga di comando di GitHub Copilot che mostra il riepilogo dell'aggiornamento Java.

Eseguire la migrazione dell'applicazione Java a Azure

Per eseguire la migrazione dell'applicazione Java a Azure, descrivere lo scenario di migrazione, come illustrato nell'esempio seguente. Per altre informazioni sulle attività di migrazione predefinite, vedere Attività predefinite per GitHub Copilot modernizzazione per sviluppatori Java.

copilot --agent=github-copilot-modernization:modernize
migrate this application from S3 to Azure Blob Storage

Con questa richiesta, l'attività di migrazione viene eseguita e mostra lo stato di avanzamento nell'interfaccia della riga di comando di Copilot.

Screenshot dell'interfaccia della riga di comando di GitHub Copilot che mostra le attività in esecuzione in scenari di migrazione Java.

Quando il progetto viene migrato correttamente a Microsoft Archiviazione BLOB di Azure, viene visualizzato un riepilogo della migrazione.

Screenshot dell'interfaccia della riga di comando di GitHub Copilot che mostra il riepilogo della migrazione Java.

Distribuire l'applicazione Java in Azure

Dopo l'aggiornamento o la migrazione dell'applicazione, è possibile distribuirla direttamente dall'interfaccia della riga di comando di Copilot usando l'esempio seguente:

copilot --agent=github-copilot-modernization:modernize
Scan my project and help me plan how to containerize my application using the #appmod-get-containerization-plan tool. Execute the plan. The end goal is to have Dockerfiles that are able to be built.

Usando questo prompt, l'attività di distribuzione viene eseguita e mostra lo stato di avanzamento nell'interfaccia della riga di comando di Copilot.

Screenshot dell'interfaccia della riga di comando di GitHub Copilot che mostra i dettagli della distribuzione Java.

Quando il progetto viene distribuito correttamente, viene visualizzato un riepilogo della distribuzione.

Screenshot dell'interfaccia della riga di comando di GitHub Copilot che mostra il riepilogo della distribuzione Java.

Troubleshooting

Plug-in non trovato

# Verify marketplace is added
copilot plugin marketplace list

# Re-add the marketplace if needed
copilot plugin marketplace add microsoft/github-copilot-modernization

# Reinstall
copilot plugin install github-copilot-modernization@github-copilot-modernization

Valutazione non riuscita: nessuna applicazione Java trovata

  • Verifica che pom.xml o build.gradle sia presente nella directory radice del progetto.
  • Assicurati di essere nella directory corretta prima di avviare Copilot CLI.

Problemi del server MCP

Il plug-in usa il server MCP definito nella configurazione. Se si verificano problemi, provare a reinstallare il plug-in per reimpostare la configurazione MCP.

Inviare commenti

Se hai commenti sul plug-in GitHub Copilot modernization, apri una issue nel repository github-copilot-appmod.

Passo successivo