這個快速入門指南教你如何使用 GitHub Copilot 現代化來評估並遷移 Java 專案。 在本快速入門中,您會安裝和設定擴充功能,然後評估並移轉範例專案。 例如,您可以使用預先定義的工作來更新 Azure SQL 資料庫連線,以使用 Azure 受控識別,而不是使用者名稱和密碼。
以下影片示範 GitHub Copilot 現代化如何利用 AppCAT 協助評估 Java 專案是否遷移到 Azure:
Prerequisites
- 具有有效訂閱的 Azure 帳戶。 免費創建一個。
- 一個擁有有效 GitHub Copilot 訂閱的 GitHub 帳號,且可在任何方案下使用。
- 最新版的 Visual Studio Code。 必須是版本 1.106 或更新。
- Visual Studio Code 中的 GitHub Copilot。 如需設定指示,請參閱在 Visual Studio Code 中設定 GitHub Copilot。 請務必在 Visual Studio Code 中登入您的 GitHub 帳戶。
- GitHub Copilot 升級。 安裝後重新啟動 Visual Studio Code。
- Java 21 或更新版本。
- Maven 或 Gradle 建置 Java 專案。
備註
如果你用的是 Gradle,只有 Gradle 包裝器版本 5 或更新版本才支援。 不支援 Kotlin 網域特定語言 (DSL)。
升級 JDK 和相依性版本
你可以用兩種方式升級你的 JDK 版本。 兩種方式都可以使用 Visual Studio Code 中的 GitHub Copilot 升級 窗格,你可以從側邊欄訪問它。
升級 JDK 版本的其中一種方式是在 [快速入門] 區段中選取 [升級執行階段和架構]。 另一種方法是在「任務 - 升級任務」區段中執行「升級的 Java 執行階段」任務。 欲了解更多資訊,請參閱 快速入門:使用 GitHub Copilot 現代化升級 Java 專案。
若要升級 Spring 架構或協力廠商相依性,請在 TASKS - 升級作業區段中執行升級 Java 架構作業。 欲了解更多資訊,請參閱「透過 GitHub Copilot 現代化升級 Java 框架或第三方依賴項」。
評估雲端整備程度
使用下列步驟,透過解決方案評量啟動移轉程式。 這項評估能幫助你了解雲端準備挑戰及其影響。 它還提供了推薦的解決方案。 解決方案建議包含設定 Azure 資源的參考、新增組態,以及進行程式碼變更。
先克隆 Java 遷移 copilot 範例 存儲庫,然后檢出 source 分支。
在 Visual Studio Code 中,開啟範例存放庫中的 mi-sql-public-demo 項目資料夾。
在側邊欄,選擇 GitHub Copilot 現代化窗格,然後在快速啟動區塊中選擇「開始評估」或「開啟評估儀表板」。
選擇 「推薦評估」,選擇 雲端準備 度網域,然後選擇 「確定 」以開始評估。
分析結束後,現代化評估器會開啟 評估報告 ,顯示雲端準備問題的分類視圖。
當您檢視摘要報告時,可以從解決方案清單中的「 遷移至 Azure SQL 資料庫(Spring) 」,在「資料庫 遷移(Microsoft SQL)問題」中選擇。 然後,選取 [執行工作] 以移至程式碼補救階段。
Prerequisites
- 具有有效訂閱的 Azure 帳戶。 免費創建一個。
- 一個擁有有效 GitHub Copilot 訂閱的 GitHub 帳號,且可在任何方案下使用。
- 最新版本的 IntelliJ IDEA。 必須是 2023.3 或更新版本。
- GitHub Copilot。 必須是 1.5.59 版或更新版本。 如需更多指示,請參閱在 IntelliJ IDEA 中設定 GitHub Copilot。 請務必在 IntelliJ IDEA 中登入您的 GitHub 帳戶。
- GitHub Copilot 升級。 安裝後重新啟動 IntelliJ IDEA。 如果你還沒安裝 GitHub Copilot,也可以直接安裝 GitHub Copilot 現代化。
- Java 21 或更新版本。
- Maven 或 Gradle 建置 Java 專案。
備註
如果你用的是 Gradle,只有 Gradle 包裝器版本 5 或更新版本才支援。 不支援 Kotlin 網域特定語言 (DSL)。
IntelliJ IDEA 尚不支援此功能 My Tasks 。
升級 JDK 和相依性版本
你可以用兩種方式升級你的 JDK 版本。 兩種方式都可以使用IntelliJ IDEA中的 GitHub Copilot升級 窗格,你可以從側邊欄存取。
升級 JDK 版本的其中一種方式是在 [快速入門] 區段中選取 [升級執行階段和架構]。 另一種方法是在「任務 - 升級任務」區段中執行「升級的 Java 執行階段」任務。 欲了解更多資訊,請參閱 快速入門:使用 GitHub Copilot 現代化升級 Java 專案。
若要升級 Spring 架構或協力廠商相依性,請在 TASKS - 升級作業區段中執行升級 Java 架構作業。 欲了解更多資訊,請參閱「透過 GitHub Copilot 現代化升級 Java 框架或第三方依賴項」。
評估雲端整備程度
使用下列步驟,透過解決方案評量啟動移轉程式。 此評估可協助您了解雲端整備挑戰是什麼,以及它們的影響程度。 它還提供了推薦的解決方案。 解決方案建議包含設定 Azure 資源的參考、新增組態,以及進行程式碼變更。
複製 Java migration Copilot 範例 存放庫,然後切換到 source 分支。
在 IntelliJ IDEA 中,打開
mi-sql-public-demo範例庫中的專案資料夾。在側邊欄,選擇 GitHub Copilot 現代化面板,然後在 ASSESSMENT 區塊中選擇「開始評估」或「執行評估」。
GitHub Copilot 聊天視窗在代理模式下開啟,呼叫現代化評估器執行現代化評估。 選取 [繼續] 以確認。
現代化評估器現在開啟
appcat.log。 此檔案顯示執行應用程式評定的 AppCAT 的記錄。 選取 [繼續] 以再次確認。現代化評估員會先檢查您的本機環境。 如果未安裝 AppCAT 及其相依性,代理程式會協助您安裝它們。 安裝之後,代理程式會呼叫 AppCAT 來評估目前的專案。 此步驟可能需要幾分鐘的時間才能完成。
完成分析後,現代化評估員會在開啟的 評估報告中產生雲端整備問題的分類檢視。
檢閱摘要報告時,您可以從問題資料庫移轉 (Microsoft SQL) 底下的解決方案清單中選取 [移轉至 Azure SQL 資料庫 (Spring)]。 然後,選取 [執行工作] 以移至程式碼補救階段。
套用預先定義的任務
針對移轉,Copilot 會針對移轉至 Azure 時可能面臨的常見移轉案例提供預先定義的工作。 例如,透過範例 mi-sql-public-demo ,資料庫 遷移(Microsoft SQL) 任務會將 Azure SQL 資料庫連線改為使用 Azure 管理身份(Managed Identity)取代使用者名稱與密碼。
若要套用預先定義的工作,請使用下列步驟:
在 [評量報告] 中,選取 [執行工作]。 Copilot 聊天視窗隨即開啟,並選取客服專員模式。
Copilot 代理使用多種工具進行 GitHub Copilot 現代化,每個工具可能需要確認才能繼續。 代理人首先生成
plan.md和progress.md。 如果需要,你可以在那裡審查plan.md並進行修改。手動輸入 「繼續 」以確認並開始遷移流程。
在進行任何程式碼變更之前,代理程式會檢查版本控制系統狀態,並簽出新的分支進行移轉。
反覆選擇或輸入 「繼續 」以確認工具或指令的使用,並等待程式碼變更完成。
備註
在 Visual Studio Code 中,GitHub Copilot 現代化預設使用 AppModernization Claude Sonnet 4.5 的自訂代理程式,以便在更新 Java 程式碼遷移到 Azure 時取得最佳效果。 如果你無法使用 Sonnet 4.5,則會退回到該 auto 模型。 你可以透過在代理程式選單中選擇「配置自訂代理程式」來設定自訂代理程式,以修改model設定。 或者,你也可以在聊天視窗中使用語言模型選擇器,為當前聊天時段切換模型。
驗證迭代
在完成程式碼變更後,手動輸入 continue 以繼續驗證和修正迭代迴圈。 此迴圈包含下列五個部分:
- 使用
Validate-CVEs工具。 此工具嘗試偵測現有相依中的常見漏洞與暴露(CVE)並加以修正。 - 使用
Build-Project工具。 此工具會嘗試解決任何建置錯誤。 - 使用
Consistency-Validation工具。 此工具分析程式碼的功能一致性。 - 使用
Run-Test工具。 此工具會分析專案是否有單元測試失敗,並自動產生修復這些失敗的計劃。 該Run-Test工具迭代運行單元測試並修復任何故障。 - 使用
Completeness-Validation工具。 此工具會擷取初始程式碼移轉中遺漏的移轉項目,並修正它們。
所有程序完成後,進入 繼續 ,產生遷移摘要作為最後一步。 檢閱程式碼變更,並選取 [ 保留] 來確認。
產生單元測試案例
若要產生單元測試案例,請使用下列步驟:
在側邊欄,選擇 GitHub Copilot 現代化 面板。
在 [工作] 區段中,開啟 [品質與安全性工作],然後選取 [產生單元測試案例]。
代理程式會產生單元測試,並建立 TestReport 來顯示產生前後的測試結果。 欲了解更多資訊,請參閱 快速入門:使用 GitHub Copilot 現代化生成單元測試。