Modernisierung von Java-Apps mithilfe der Modernisierung durch GitHub Copilot in der Copilot CLI

Dieser Artikel enthält eine Übersicht darüber, wie Java Entwickler ihre Anwendungen mithilfe des GitHub Copilot-Modernisierungs-Plug-Ins in Copilot CLI modernisieren können. Mithilfe dieses Ansatzes können Entwickler Anwendungen überall modernisieren, wo sie coden. Das Plug-In bietet eine nahtlose, end-to-End-Erfahrung – von Upgrade und Migration bis hin zur Bereitstellung – und hilft Teams dabei, die Transformation zu beschleunigen, die Produktivität zu steigern und ihre Anwendungen auf moderne Plattformen zu übertragen.

Screenshot der GitHub Copilot CLI mit einer GitHub Copilot Modernisierungsaufforderung.

Hinweis

GitHub Copilot CLI ist mit den GitHub Copilot Pro-, GitHub Copilot Pro+-, GitHub Copilot Business- und GitHub Copilot Enterprise-Plänen verfügbar. Wenn Sie Copilot von einer Organisation erhalten, muss die Copilot CLI-Richtlinie in den Einstellungen der Organisation aktiviert sein.

Mithilfe von Copilot CLI für die Modernisierung können Sie Modernisierungsaufgaben direkt vom Terminal aus ausführen, ohne zu einer IDE wechseln zu müssen. Dieser Ansatz unterstützt sowohl Mensch-in-der-Schleife- als auch Batch-Workflows.

Mögliche Aktionen

Fähigkeit Description
Java-Aktualisierung Java-Version aktualisieren (8 → 11 → 17 → 21 → 25), Spring Boot 2.x auf 3.x migrieren, javax zu jakarta und veraltete APIs aktualisieren
Azure Migration Bewerten und Migrieren von Java Anwendungen zu Azure Diensten (Azure Service Bus, Azure SQL, Redis, Azure Key Vault, Application Insights, Managed Identity)
CVE- und Sicherheitsrisikobereinigung Überprüfen und Beheben von CVE-Sicherheitsrisiken in Maven-Abhängigkeiten, einschließlich Log4j, Spring, Jackson und OWASP-Abhängigkeitsanalyse
Anwendungsneuarchitektur Strukturelle Umgestaltungen wie die Zerlegung eines Monolithen in Microservices, die Modernisierung von Legacy-Benutzeroberflächen und die Extraktion von Modulen
Deploy to Azure Bereitstellen von aktualisierten oder migrierten Java Anwendungen direkt auf Azure

Voraussetzungen

Hinweis

Ein Azure Konto ist nur für die Bereitstellung von Ressourcen auf Azure erforderlich und wird nicht benötigt, wenn GitHub Copilot Modernisierung verwendet wird, um Codeänderungen vorzunehmen.

Installieren des Plug-Ins

  1. Fügen Sie den Marketplace hinzu, und installieren Sie das Plug-In:

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  2. Überprüfen Sie, ob das Plug-In installiert ist, indem Sie installierte Plug-Ins auflisten:

    /plugin list
    

    Sie sollten github-copilot-modernization@github-copilot-modernization in der Liste sehen.

Tipp

Führen Sie Folgendes aus, um das Plug-In zu aktualisieren, wenn eine neue Version verfügbar ist:

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

Starten einer Modernisierungsaufgabe

Option 1: Mit dem Agent direkt beginnen

Navigieren Sie zu Ihrem Java Projektordner, und starten Sie Copilot CLI mit dem Modernisierungs-Agent:

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

Option 2: Agent in Copilot CLI auswählen

Wenn Sie sich bereits in einer Copilot CLI-Sitzung befinden, verwenden Sie den Befehl /agent, um zum Modernisierungs-Agent zu wechseln:

/agent

Wählen Sie modernize aus der Liste aus.

Important

Sie müssen den github-copilot-modernization:modernize Agent auswählen, bevor Sie Modernisierungsaufforderungen ausführen. Ohne den Agent auszuwählen, verwendet Copilot CLI den Standard-Agent, der nicht die vollständigen Multi-Agent-Orchestrierungs- und speziellen Migrationsfunktionen des Plug-Ins verwenden kann.

Modernisierungsanweisung ausführen

Sobald der Agent aktiv ist, beschreiben Sie, was Sie in natürlicher Sprache wünschen:

modernize my application

Oder spezifischer sein:

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

Verwenden Sie für die unbeaufsichtigte Ausführung das --allow-all Kennzeichen:

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

Funktionsweise des Workflows

Das Plug-In verwendet einen dreistufigen Workflow, der automatisch ausgeführt wird. Sie müssen jede Phase nicht manuell aufrufen – der Orchestrator verarbeitet das Routing basierend auf Ihrer Anforderung.

Phase 1: Bewertung

  • Ermittelt Java Anwendungen im angegebenen Pfad.
  • Analysiert Abhängigkeiten, Frameworks und Java Version.
  • Identifiziert Modernisierungschancen und Risiken.
  • Speichert Ergebnisse in .github/modernize/assessment/.

Phase 2: Planung

  • Lädt Bewertungsergebnisse.
  • Generiert einen ausführbaren Aufgabenplan.
  • Speichert den Plan in .github/modernize/<app>/plan.md und tasks.json.

Phase 3: Ausführung

  • Leitet Aufgaben basierend auf dem Aufgabentyp an spezialisierte Executor-Agents weiter.
  • Jeder Executor fragt eine Wissensbasis für Migrationsmuster ab.
  • Überwacht den Fortschritt mit automatischer Wiederholung bei Fehlern.
  • Erstellt detaillierte Commits pro Aufgabe zur Überprüfung.

Der Orchestrator unterstützt je nach Absicht mehrere Einstiegspunkte:

Workflow Wenn sie aktiviert wird Was ist los
Allgemeine Absicht "Meine Anwendung modernisieren" Vollständige Bewertung → Plans → Ausführen der Pipeline
Spezifischer Vorgang "Upgrade auf Java 21" Überspringt die Bewertung, geht direkt zum Planen → Ausführung
Ausführen eines vorhandenen Plans "Plan ausführen" Überspringt Bewertung und Planung, führt einen vorhandenen Plan aus.
Kopflos Unbeaufsichtigte Ausführung mit --allow-all Identisch mit der allgemeinen Absicht ohne Benutzereingabeaufforderungen

Häufige Szenarien

Aktualisieren Ihrer Java Anwendung

Verwenden Sie das folgende Beispiel, um die Java Anwendung auf eine neuere Laufzeit- oder Frameworkversion zu aktualisieren:

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

Anschließend wird der Modernisierungsvorgang ausgeführt, einschließlich des Generierens des Upgradeplans, durchführen der Codebehebung, Erstellen des Projekts und Überprüfen auf Sicherheitsrisiken, wie im folgenden Screenshot gezeigt:

Screenshot von GitHub Copilot CLI, das das Ausführen von Aufgaben in Java Upgradeszenarien anzeigt.

Das Projekt wurde erfolgreich auf JDK 21 und Spring Boot 3.2 aktualisiert, und es wird eine Upgradezusammenfassung angezeigt.

Screenshot von GitHub Copilot CLI, die die Java-Upgrade-Zusammenfassung zeigt.

Migrieren Ihrer Java-Anwendung zu Azure

Wenn Sie Ihre Java-Anwendung zu Azure migrieren möchten, beschreiben Sie Ihr Migrationsszenario, wie im folgenden Beispiel gezeigt. Weitere Informationen zu vordefinierten Migrationsaufgaben finden Sie unter Vordefinierte Aufgaben für GitHub Copilot Modernisierung für Java Entwickler.

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

Mit dieser Eingabeaufforderung wird die Migrationsaufgabe ausgeführt und zeigt den Fortschritt in Copilot CLI an.

Screenshot von GitHub Copilot CLI, das das Ausführen von Aufgaben in Java Migrationsszenarien anzeigt.

Wenn das Projekt erfolgreich zu Microsoft Azure Blob Storage migriert wird, wird eine Migrationszusammenfassung angezeigt.

Screenshot der GitHub Copilot CLI, der die Java-Migrationszusammenfassung zeigt.

Bereitstellen ihrer Java Anwendung zum Azure

Nachdem Sie ihre Anwendung aktualisiert oder migriert haben, können Sie sie direkt über Copilot CLI bereitstellen, indem Sie das folgende Beispiel verwenden:

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.

Durch die Verwendung dieses Prompts wird die Bereitstellungsaufgabe ausgeführt, und der Fortschritt wird in Copilot CLI angezeigt.

Screenshot von GitHub Copilot CLI, das die Java-Bereitstellungsdetails zeigt.

Wenn das Projekt erfolgreich bereitgestellt wurde, wird eine Bereitstellungszusammenfassung angezeigt.

Screenshot von GitHub Copilot CLI, in dem die zusammenfassung der Java Bereitstellung angezeigt wird.

Troubleshooting

Plug-In nicht gefunden

# 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

Die Bewertung schlägt fehl: Es wurde keine Java Anwendung gefunden.

  • Überprüfen Sie, ob pom.xml oder build.gradle im Stammverzeichnis Ihres Projekts vorhanden ist.
  • Stellen Sie sicher, dass Sie sich im richtigen Verzeichnis befinden, bevor Sie Copilot CLI starten.

MCP-Serverprobleme

Das Plug-In verwendet den MCP-Server, der in seiner Konfiguration definiert ist. Wenn Probleme auftreten, versuchen Sie, das Plug-In erneut zu installieren, um die MCP-Konfiguration zurückzusetzen.

Feedback geben

Wenn Sie Feedback zum GitHub Copilot Modernization-Plug-In haben, erstellen Sie ein Problem im Github-copilot-appmod-Repository.

Nächster Schritt