So transformiert Amazon Q Developer Code für Upgrades von Java-Sprachen
Zum Transformieren Ihres Codes generiert Amazon Q Developer einen Transformationsplan, anhand dessen die Codesprachenversion Ihres Projekts aktualisiert wird. Nach der Transformation Ihres Codes erhalten Sie eine Zusammenfassung der Transformation und einen Dateivergleich, mit dem Sie die Änderungen überprüfen können, bevor Sie sie akzeptieren. Da Amazon Q Developer die minimalen Änderungen vornimmt, die erforderlich sind, um Ihren aktualisierten Code mit dem Ziel-JDK kompatibel zu machen, ist eine zusätzliche Transformation erforderlich, um die Bibliotheken und Abhängigkeiten Ihres Projekts zu aktualisieren. In den folgenden Abschnitten erhalten Sie weitere Informationen dazu, wie Amazon Q die Transformation durchführt.
Erstellen Ihres Codes und Aufstellen eines Transformationsplans
Zur Transformation Ihres Codes erstellt Amazon Q Ihr Projekt lokal und generiert ein Build-Artefakt, das Ihren Quellcode, Ihre Projektabhängigkeiten und Build-Protokolle enthält.
Nach der Generierung des Build-Artefakts erstellt Amazon Q Ihren Code in einer sicheren Build-Umgebung und stellt einen Transformationsplan auf, der auf das Projekt oder Modul zugeschnitten ist, das Sie aktualisieren. Der Transformationsplan beschreibt die spezifischen Änderungen, die Amazon Q vornehmen wird, einschließlich neuer Abhängigkeitsversionen, wichtiger Codeänderungen und Vorschlägen zum Ersetzen von veraltetem Code. Diese Änderungen basieren auf der vorläufigen Version Ihres Codes und können sich während der Transformation ändern.
Transformieren Ihres Codes
Zum Transformieren Ihres Codes versucht Amazon Q, den Code auf der Grundlage der vorgeschlagenen Änderungen im Transformationsplan auf die Ziel-Java-Version zu aktualisieren. Während der Vornahme der Änderungen werden bestehende Modultests in Ihrem Quellcode neu erstellt und ausgeführt, um alle aufgetretenen Fehler iterativ zu beheben. Das JDK-Upgrade kann von der folgenden Quellcodeversion auf die Zielversion durchgeführt werden:
-
Java 8 auf 17
-
Java 8 auf 21
-
Java 11 auf 17
-
Java 11 auf 21
-
Java 17 auf 21
Amazon Q nimmt die mindestens erforderlichen Änderungen vor, um Ihren Code mit der Java-Zielversion kompatibel zu machen. Nach dem erfolgreichen Upgrade auf Java 17 oder 21 Sobald Amazon Q mindestens ein JDK-Upgrade durchgeführt hat, können Sie eine separate Transformation einleiten, um alle Abhängigkeiten von Drittanbietern zu aktualisieren. Alternativ können Sie Abhängigkeiten von Drittanbietern und deren Versionen in einer YAML-Datei angeben, um nur diese Abhängigkeiten während der Upgrade-Transformation der Bibliothek zu aktualisieren.
Amazon Q versucht, beim Upgrade Ihres Codes die folgenden Änderungen vorzunehmen:
-
Aktualisieren veralteter Codekomponenten gemäß den Empfehlungen für die Java-Zielversion
-
Aktualisieren gängiger Bibliotheken und Frameworks auf eine Version, die mit der Java-Zielversion kompatibel ist. Dies umfasst die Aktualisierung der folgenden Bibliotheken und Frameworks auf ihre neuesten verfügbaren Hauptversionen:
-
Apache Commons IO
-
Apache HttpClient
-
bc-fips
-
Cucumber-JVM
-
Hibernate
-
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
-
Anmerkung
Schalten Sie Ihren lokalen Computer während der Codetransformation nicht aus, da für den clientseitigen Build eine stabile Netzwerkverbindung erforderlich ist.
Entwickeln von Code in Ihrer lokalen Umgebung
Während einer Transformation führt Amazon Q Verifizierungs-Builds in Ihrer lokalen Umgebung durch. Amazon Q transformiert Ihren Code serverseitig in mehreren Schritten. Nach jedem Schritt sendet Amazon Q den Code an Ihre lokale Umgebung, um die vorgenommenen Änderungen zu erstellen und zu testen. Der Code wird dann an die Serverseite zurückgesendet, um die Transformation fortzusetzen.
Der Build in Ihrer lokalen Umgebung hilft bei der Überprüfung des transformierten Codes, indem Amazon Q Tests ausführen kann, die Zugriff auf private Ressourcen erfordern. Damit Sicherheitsrisiken im Zusammenhang mit der Erstellung von KI-generiertem Code in Ihrer lokalen Umgebung minimiert werden, überprüft und aktualisiert Amazon Q den generierten Code, um Sicherheitsbedenken auszuräumen.
Überprüfen der Transformationszusammenfassung und Akzeptieren der Änderungen
Nach Abschluss der Transformation stellt Amazon Q eine Transformationszusammenfassung mit Einzelheiten zu den vorgenommenen Änderungen bereit, einschließlich des Status des endgültigen Builds, der angibt, ob Ihr gesamtes Projekt aktualisiert wurde. Sie können sich auch eine Zusammenfassung des Build-Protokolls ansehen, um alle Probleme zu verstehen, die Amazon Q daran gehindert haben, Ihren Code in der aktualisierten Version zu erstellen.
Die Transformationszusammenfassung enthält außerdem die Unterschiede zwischen den im Transformationsplan vorgeschlagenen Änderungen und den Änderungen, die Amazon Q letztendlich vorgenommen hat, um Ihren Code zu aktualisieren, sowie alle zusätzlichen Änderungen, die nicht im ursprünglichen Plan enthalten waren.
Nachdem Sie die Transformationszusammenfassung überprüft haben, können Sie sich die Änderungen, die Amazon Q vorschlägt, in einer Dateivergleichsansicht ansehen. Alle Codeänderungen, die Amazon Q vorschlägt, wirken sich erst auf Ihre aktuellen Projektdateien aus, wenn Sie die Änderungen akzeptieren. Der transformierte Code ist bis zu 30 Tage nach Abschluss der Transformation verfügbar.
Abschließen teilweise erfolgreicher Transformationen
Abhängig von der Komplexität und den Besonderheiten Ihrer Codebasis kann es Fälle geben, in denen die Transformation teilweise erfolgreich ist. Das bedeutet, dass Amazon Q nur bestimmte Dateien oder Codebereiche in Ihrem Projekt transformieren konnte. In diesem Fall müssen Sie den verbleibenden Code manuell aktualisieren, damit Ihr Projekt in der aktualisierten Sprachversion erstellt werden kann.
Beim Transformieren des verbleibenden Codes können Sie als Hilfestellung Amazon Q Chat in der IDE verwenden. Sie können Amazon Q bitten, die teilweise aktualisierten Dateien zu überprüfen und neuen Code bereitzustellen, um Probleme wie Kompilierungsfehler zu beheben. Sie können auch Funktionen wie /dev und @workspace verwenden, um mehr von Ihrem Projekt als Kontext einzubeziehen und Vorschläge für mehrere Dateien gleichzeitig zu erhalten.