使用 Amazon Q Developer 升級 Java 版本 - Amazon Q Developer

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon Q Developer 升級 Java 版本

Amazon Q Developer 可以在整合開發環境 (IDE) 中將您的 Java 應用程式升級至較新的語言版本。Amazon Q 可以進行的變更來升級程式碼,包括更新取代的程式碼元件和 APIs,以及升級程式碼中的程式庫、架構和其他相依性。

若要轉換您的程式碼,Amazon Q 會先在來源語言版本中建置您的程式碼,並驗證其具有執行轉換所需的資訊。Amazon Q 成功轉換程式碼後,您會驗證並接受 IDE 中的變更。由於 Amazon Q Developer 會進行必要的最低變更,讓您的升級程式碼與目標 JDK 相容,因此需要額外的轉換才能升級專案的程式庫和相依性。如需 Amazon Q 如何轉換程式碼的詳細資訊,請參閱 Amazon Q Developer 如何轉換 Java 語言升級的程式碼

支援的 Java 升級和 IDEs

Amazon Q 目前支援下列 Java 原始程式碼版本和目標版本以進行轉換。將程式碼轉換為相同的 Java 版本包括升級原始程式碼版本中的程式庫和其他相依性。

支援的 Java 升級
原始程式碼版本 支援的目標版本
Java 8 Java 17 和 Java 21
Java 11 Java 17 和 Java 21
Java 17 Java 17 和 Java 21
Java 21

Java 21

Amazon Q 在下列 IDEs 中支援 Java 升級:

  • IDEs JetBrains 中的模組

  • 中的專案和工作區 Visual Studio Code

步驟 1:事前準備

繼續之前,請確定您已完成在 IDE 中設定 Amazon Q 中的步驟。

開始程式碼轉換任務之前,請確定符合下列先決條件:

  • 您的專案是以支援的Java版本撰寫,並建置在 上Maven。

  • 您的專案已成功在 IDE Maven中使用 建置。 Maven 目前支援 3.8 或更新版本。

  • 您的專案來源 JDK 可在本機使用,並且是原始程式碼的版本。例如,如果您正在轉換 Java 8 程式碼,則本機 JDK 安裝應為 JDK 8。

  • 您的專案會在 55 分鐘內建置。

  • 您的專案已正確設定,並指定正確的 JDK 版本。如需詳細資訊,請參閱步驟 2:設定您的專案

  • 您的專案不需要存取私有網路上的資源,包括虛擬私有雲端 (VPC) 或內部部署網路。例如,如果您的專案包含連線至您網路中資料庫的單元測試,轉換將會失敗。

  • 您的專案不會在 Java 專案中使用封裝 Java 以外語言的外掛程式。例如,如果您的專案除了您的 Java 原始程式碼之外,還使用frontend-maven-plugin 執行前端 JavaScript 程式碼,轉換將會失敗。

  • 您的本機網路允許上傳至 Amazon Q 用來轉換程式碼的 Amazon S3 儲存貯體。如需詳細資訊,請參閱允許存取資料周邊中的 Amazon S3 儲存貯體。

步驟 2:設定您的專案

若要設定專案,請針對您正在使用的 IDE 使用下列資訊。

在 中設定專案 JetBrains

若要在 中設定專案JetBrains,您可能需要指定下列專案和模組設定。

如果您的模組使用與專案相同的 JDK 和語言層級,則不需要更新模組設定。

  • 專案 SDK – 用來編譯專案的 JDK。

  • 專案語言層級 – 專案中使用的Java版本。

  • 模組 SDK – 用來編譯模組的 JDK。

  • 模組語言層級 – 模組中使用的Java版本。

  • Maven Runner JRE – 您用來建置模組的 JDK。

更新專案和模組設定

若要更新專案或模組的 SDK 和語言層級設定,請完成下列步驟:

  1. 從 JetBrains IDE 中選擇檔案,然後選擇專案結構

  2. 專案結構視窗隨即開啟。在專案設定下,選擇專案

    1. 若要更新您的專案 JDK,請從 SDK 旁的下拉式清單中選擇 。

    2. 若要更新您的專案語言,請從語言層級旁的下拉式清單中選擇 。

  3. 請在 Project Settings (專案詳細資訊) 下選擇 Modules (模組)

    1. 若要更新您的模組 JDK,請從 SDK 旁的下拉式清單中選擇 。

    2. 若要更新您的模組語言,請從語言層級旁的下拉式清單中選擇 。

如需詳細資訊,請參閱 JetBrains 文件中的專案結構設定模組結構設定

更新 Maven 設定

若要更新您的 Maven Runner JRE,請完成下列步驟:

  1. 從 JetBrains IDE 選擇齒輪圖示,然後在出現的功能表中選擇設定

  2. 設定視窗中,選擇建置、執行、部署,然後選擇建置工具,然後選擇 Maven,然後選擇 Runner

  3. 在 JRE 欄位中,選擇用來建置您要轉換之模組的 JDK。

在 中設定專案 VS Code

若要在 中設定您的專案VS Code,您的專案必須包含下列項目:

  • 專案根資料夾中pom.xml的檔案

  • 專案目錄中.java的檔案

如果您的專案包含Maven包裝函式可執行檔 (mvnw適用於 macOS或mvnw.cmd適用於 Windows),請確定其位於專案的根目錄。Amazon Q 將使用包裝函式,不需要其他Maven組態。

如果您不使用Maven包裝函式,請安裝 Maven。如需詳細資訊,請參閱 Apache Maven 文件中的安裝Apache Maven

安裝 之後Maven,請將其新增至您的PATH變數。如需詳細資訊,請參閱如何將 Maven 新增至我的 PATH?您的 Java runtime變數也應該指向 JDK,而不是指向 JRE。若要確認您的組態正確,請執行 mvn -v。輸出應會顯示您的Maven版本和指向 JDK 路徑的runtime變數。

步驟 3:建立相依性升級檔案 (選用)

您可以為 Amazon Q 提供相依性升級檔案、列出專案相依性的 YAML 檔案,以及在轉換期間要升級到哪個版本。透過提供相依性升級檔案,您可以指定 Amazon Q 可能不知道要升級的第三方和第一方相依性。

第一方相依性是指您的組織維護的程式庫、外掛程式和架構,並且只能在本機或組織的私有網路上使用。在本機環境中執行建置時,Amazon Q 可以存取您的第一方相依性。如需詳細資訊,請參閱在本機環境中建置程式碼。第三方相依性是您的組織不唯一的公開可用或開放原始碼相依性。

您可以在 YAML 檔案中指定要升級的第一方相依性,並在 JDK 升級期間 (例如 Java 8 到 17) Amazon Q 升級它們。您可以在初始 JDK 升級之後啟動單獨的轉換 (17 到 17 或 21 到 21),以升級第三方相依性。

一旦 Amazon Q 執行最低 JDK 升級,您就可以啟動個別轉換來升級所有第三方相依性。或者,您可以在 YAML 檔案中指定第三方相依性及其版本,只在程式庫升級轉換期間升級這些相依性。

Amazon Q 會在轉換期間提示您提供相依性升級檔案。如果您想要提供檔案,請先確定您已正確設定檔案。YAML 檔案中需要下列欄位:

  • name - 相依性升級檔案的名稱。

  • description (選用) - 相依性升級檔案的描述,以及轉換的描述。

  • dependencyManagement - 包含要升級的相依性和外掛程式清單。

  • 相依性 - 包含要升級之程式庫的名稱和版本。

  • 外掛程式 - 包含要升級的外掛程式名稱和版本。

  • identifier - 程式庫、外掛程式或其他相依性的名稱。

  • targetVersion - 要升級的相依性版本。

  • versionProperty (選用) - 您正在定義的相依性版本,如您應用程式pom.xml檔案中的 properties標籤所設定。

  • originType - 相依性是第一個還是第三方,由 FIRST_PARTY 或 第三方指定。

以下是相依性升級 YAML 檔案的範例,以及 Amazon Q 剖析所需的組態:

name: dependency-upgrade description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21" dependencyManagement: dependencies: - identifier: "com.example:library1" targetVersion: "2.1.0" versionProperty: "library1.version" # Optional originType: "FIRST_PARTY" - identifier: "com.example:library2" targetVersion: "3.0.0" originType: "THIRD_PARTY" plugins: - identifier: "com.example.plugin" targetVersion: "1.2.0" versionProperty: "plugin.version" # Optional originType: "THIRD_PARTY"

步驟 4:轉換您的程式碼

在您轉換自己的程式碼之前,建議您先轉換範例專案,以測試您的 IDE 是否正確設定。以下是符合程式碼轉換資格的範例 GitHub 專案:https://https://github.com/aws-samples/aws-appconfig-java-sample

若要測試 IDE 設定,請下載並解壓縮範例專案,並完成 IDE 的下列步驟。如果您能夠檢視提議的變更和轉換摘要,您就可以轉換自己的程式碼專案。如果轉換失敗,表示您的 IDE 未正確設定。若要解決組態問題,請檢閱 步驟 2:設定您的專案故障診斷

注意

請勿在程式碼轉換期間關閉或關閉本機機器,因為用戶端建置需要穩定的網路連線。

若要升級程式碼專案或模組的語言版本,請完成 IDE 的下列步驟。

JetBrains
  1. 在 中開啟您要升級的模組JetBrains。請確定您已成功在 IDE 中建置專案。

  2. 選擇 Amazon Q 標誌,然後在開啟的 Amazon Q 聊天面板/transform中輸入 。

  3. 隨即出現轉換應用程式快顯視窗。從下拉式清單中選擇您要升級的專案,然後選擇轉換

  4. Amazon Q 會提示您提供升級相依性檔案。如果您已使用要升級的相依性和版本設定 YAML,請新增 檔案。Amazon Q 會驗證檔案,以確保其設定正確。如果您收到錯誤,請檢閱中所述的格式和必要欄位步驟 3:建立相依性升級檔案 (選用)

  5. Amazon Q 會開始轉換。您可以在轉換詳細資訊索引標籤上檢視進度。

  6. 轉換完成後,您可以在更新專案之前驗證升級的程式碼。若要檢視新程式碼,請前往轉換詳細資訊索引標籤,然後選擇檢視差異。在出現的套用修補程式視窗中,選擇檔案以使用您的原始程式碼和升級程式碼開啟 diff 檢視。

  7. 若要接受 Amazon Q 所做的變更,請選擇檢視差異以開啟套用修補程式視窗。選取所有更新的檔案,然後選擇確定以適當更新您的專案。

  8. 若要取得如何升級程式碼和建議後續步驟的詳細資訊,請在轉換詳細資訊索引標籤上,選擇檢視轉換摘要

Visual Studio 程式碼
  1. 在 中開啟您要升級的專案或工作區VS Code。請確定您已成功在 IDE 中建置專案。

  2. 選擇 Amazon Q 標誌,然後在開啟的 Amazon Q 聊天面板/transform中輸入 。

  3. 從 IDE 頂端的搜尋列中選擇您要升級的專案。

  4. 如果 Amazon Q 找不到原始程式碼的版本,它會提示您選擇程式碼版本。選擇原始程式碼寫入的版本,然後在快顯視窗中選擇轉換以繼續。

  5. 如果出現提示,請輸入 JDK 的JAVA_HOME路徑。如需詳細資訊,請參閱設定VS Code專案

  6. Amazon Q 會提示您提供升級相依性檔案。如果您已使用要升級的相依性和版本設定 YAML,請新增 檔案。Amazon Q 會驗證檔案,以確保其設定正確。如果您收到錯誤,請檢閱中所述的格式和必要欄位步驟 3:建立相依性升級檔案 (選用)

  7. Amazon Q 會開始轉換。您可以在 Transformation Hub 索引標籤上檢視進度。

  8. 轉換完成後,提議的變更索引標籤會開啟。若要在更新專案之前驗證升級的程式碼,請選擇下載建議的變更。選擇檔案以使用您的原始程式碼和升級的程式碼開啟差異檢視。

  9. 若要接受 Amazon Q 所做的變更,請前往提議的變更索引標籤,然後選擇接受

  10. 若要取得程式碼如何升級和建議後續步驟的詳細資訊,請在 Transformation Hub 上,選擇檢視和更多動作省略按鈕,然後選擇顯示轉換摘要