本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Q Developer 如何轉換 Java 語言升級的程式碼
為了轉換您的程式碼,Amazon Q Developer 會產生轉換計劃,用來升級專案的程式碼語言版本。轉換程式碼之後,它會提供轉換摘要和檔案差異,供您在接受變更之前檢閱變更。由於 Amazon Q Developer 會進行必要的最低變更,讓您的升級程式碼與目標 JDK 相容,因此需要額外的轉換才能升級專案的程式庫和相依性。下列各節提供 Amazon Q 如何執行轉換的詳細資訊。
建置程式碼並建立轉換計畫
若要開始轉換您的程式碼,Amazon Q 會在本機建置您的專案,並產生包含您的原始程式碼、專案相依性和建置日誌的建置成品。
產生建置成品後,Amazon Q 會在安全的建置環境中建置您的程式碼,並建立轉換計畫,該計畫會針對您要升級的專案或模組進行自訂。轉換計劃概述 Amazon Q 將嘗試進行的特定變更,包括新的相依性版本、主要程式碼變更,以及已取代程式碼的建議取代。這些變更是以程式碼的初步建置為基礎,並且可能會在轉換期間變更。
轉換您的程式碼
為了轉換您的程式碼,Amazon Q 會根據轉換計畫中提議的變更,嘗試將您的程式碼升級至目標 Java 版本。隨著變更,它會在原始程式碼中重建並執行現有的單元測試,以反覆修正任何遇到的錯誤。JDK 升級可以從下列原始碼版本進行到目標版本:
-
Java 8 到 17
-
Java 8 到 21
-
Java 11 到 17
-
Java 11 到 21
-
Java 17 到 21
Amazon Q 會進行必要的最少變更,讓您的程式碼與目標 Java 版本相容。成功升級至 Java 17 或 21 之後。一旦 Amazon Q 執行最低 JDK 升級,您就可以啟動個別轉換來升級所有第三方相依性。或者,您可以在 YAML 檔案中指定第三方相依性及其版本,以在程式庫升級轉換期間僅升級這些相依性。
升級程式碼時,Amazon Q 會嘗試進行下列變更:
-
根據目標 Java 版本建議更新已取代的程式碼元件
-
將熱門程式庫和架構升級至與目標 Java 版本相容的版本。這包括將下列程式庫和架構更新為其最新的可用主要版本:
-
Apache Commons IO
-
Apache HttpClient
-
bc-fips
-
Cucumber-JVM
-
休眠
-
jackson 註釋
-
JakartaEE
-
Javax
-
javax.servlet
-
jaxb-api
-
jaxb-impl
-
jaxen
-
jcl-over-slf4j
-
json-simple
-
jsr305
-
junit
-
junit-jupiter-api
-
Log4j
-
密奧爾特
-
Mockito
-
模擬核心
-
俄亥俄
-
PowerMockito
-
Quarkus
-
slf4j
-
slf4j-api
-
彈簧開機
-
彈簧架構
-
Spring 安全
-
Swagger
-
測試
-
注意
請勿在程式碼轉換期間關閉或關閉本機機器,因為用戶端建置需要穩定的網路連線。
在本機環境中建置程式碼
在轉換期間,Amazon Q 會在您的本機環境中執行驗證建置。Amazon Q 會以多個步驟在伺服器端轉換您的程式碼。在每個步驟之後,Amazon Q 會將程式碼傳送至您的本機環境,以建置和測試其所做的變更。然後,程式碼會傳回伺服器端以繼續轉換。
本機環境中的建置可讓 Amazon Q 執行需要存取私有資源的測試,以協助驗證轉換後的程式碼。為了將在本機環境中建置 AI 產生的程式碼相關的安全風險降至最低,Amazon Q 會檢閱並更新產生的程式碼,以解決安全問題。
檢閱轉換摘要並接受變更
轉換完成後,Amazon Q 會提供轉換摘要,其中包含其所做變更的詳細資訊,包括最終建置的狀態,指出您的整個專案是否已升級。您也可以檢視建置日誌摘要,以了解導致 Amazon Q 無法在升級版本中建置程式碼的任何問題。
轉換摘要還包含轉換計畫中提議的變更與 Amazon Q 最終對升級程式碼所做的變更,以及不在原始計畫中的任何其他變更之間的差異。
檢閱轉換摘要後,您可以在檔案差異檢視中檢視 Amazon Q 提議的變更。Amazon Q 建議的任何程式碼變更都不會影響您目前的專案檔案,直到您接受變更為止。轉換後的程式碼可在轉換完成後最多 30 天內使用。
完成部分成功的轉換
視程式碼庫的複雜性和細節而定,可能會有部分成功轉換的執行個體。這表示 Amazon Q 只能轉換專案中的特定檔案或程式碼區域。在這種情況下,您必須手動更新專案的其餘程式碼,才能在更新的語言版本中建置。
為了協助轉換您的其餘程式碼,您可以在 IDE 中使用 Amazon Q 聊天。您可以要求 Amazon Q 檢閱部分更新的檔案,並提供新的程式碼來解決問題,例如編譯錯誤。您也可以使用 /dev和 等功能@workspace,將更多專案納入內容,並一次取得多個檔案的建議。