GitHub Copilot 現代化提供 AI 驅動的代理式體驗,自動化 Java 升級工作流程的端到端——從專案分析、計畫生成到程式碼轉換、建置驗證與 CVE 修復。
支援的升級情境
- 將 Java 開發套件(JDK)升級至 Java 11、17、21 或 25。
- 將 Spring Boot 升級到 4.0 版本。
- 將 Spring Framework 升級到 7.x 版本。
- 將 Java EE 升級到 Jakarta EE,再升級到 Jakarta EE 11。
- 升級適用於 Java 的 Azure SDK。
- 升級 JUnit。
- 將第三方相依性升級至指定版本。
先決條件
- 一個啟用GitHub Copilot的GitHub帳號。 你需要免費層級、Pro、Pro+、商業或企業方案。
- Java JDK 適用於原始與目標 JDK 版本。
- Maven 或 Gradle來建立Java專案。
- 一個使用 Maven 或 Gradle 的 Git 管理 Java 專案。
- 針對 Maven 型專案:存取公用 Maven Central 存放庫。
- 最新版本的 Visual Studio Code。
- GitHub Copilot 使用於 Visual Studio Code。 設定指導說明請參見在 Visual Studio Code 中設置 GitHub Copilot。 請務必在 Visual Studio Code 內登入你的 GitHub 帳號。
- GitHub Copilot 的現代化。 安裝後重新啟動 Visual Studio Code。
- 最新版本的 IntelliJ IDEA。
- GitHub Copilot。 欲取得更多說明,請參閱在 IntelliJ IDEA 中設定 GitHub Copilot。 請務必在 IntelliJ IDEA 內登入你的 GitHub 帳號。
- GitHub Copilot 的現代化。 安裝後重新啟動 IntelliJ IDEA。 如果你還沒安裝 GitHub Copilot,也可以直接安裝 GitHub Copilot 現代化版。
- 若要更有效率地使用GitHub Copilot現代化:在 IntelliJ IDEA 設定中,選擇 Tools>GitHub Copilot 設定視窗,然後選擇 Auto-approve 及 Trust MCP 工具註解。 欲了解更多資訊,請參閱 配置 GitHub Copilot 現代化設定以優化 IntelliJ 的體驗。
-
npm install -g @github/copilot 安裝 GitHub Copilot 現代化外掛:
copilot plugin marketplace add microsoft/modernize-java copilot plugin install modernize-java@modernize-java
備註
Azure 帳號僅用於部署資源到 Azure,使用 GitHub Copilot 現代化進行程式碼變更時則不需要。
如果你用的是 Gradle,只有 Gradle 包裝器版本 5 或更新版本才支援。
不支援 Kotlin 網域特定語言 (DSL)。
選擇一個 Java 專案來升級
本教學請選擇以下範例庫之一:
- Maven: uportal-messaging
- Gradle: docraptor-java
啟動升級
請依照以下步驟開始升級流程:
在 Visual Studio Code 中開啟所選的 Java 專案。
在側邊欄中開啟 GitHub Copilot 現代化 面板,即可看到 QuickStart 頁面。
選擇 升級 Java 執行階段與框架。
此操作會開啟 GitHub Copilot Chat 的代理模式,並自動啟動升級流程。
小提示
你也可以從快速啟動面板下方的 任務 樹中選擇特定任務(例如升級 春季啟動版本 或 升級雅加達 EE 版本),以觸發目標升級。
或者,你也可以直接在 GitHub Copilot Chat 用代理模式輸入——例如「「Upgrade my Java project to Java 21」 來啟動升級。
請依照以下步驟開始升級流程:
在 IntelliJ IDEA 中開啟所選的 Java 專案。
在側邊欄中,開啟 GitHub Copilot 現代化 面板,即可查看 QuickStart 頁面。
選擇 升級執行時與框架。
此操作會開啟 GitHub Copilot Chat 的代理模式,並自動啟動升級流程。
小提示
你也可以直接在 GitHub Copilot Chat 用代理模式輸入——例如「將我的Java專案升級到 Java 21」——來開始升級。
請依照以下步驟開始升級流程:
打開終端機,然後進入你的 Java 專案目錄。
執行升級指令:
copilot --model claude-sonnet-4.6 --agent modernize-java:modernize-java客服開始操作後,請輸入您的升級申請:
upgrade to Java 21 + Spring Boot 3.5.x
選擇升級目標
開始升級後,代理會提示你選擇目標版本。 選擇想要的 Java 版本,若適用,則選擇專案的 Spring Boot 版本。
檢閱和編輯升級計劃
GitHub Copilot 現代化分析目前工作空間中的 Java 專案,包括其 JDK、建置工具及相依性。 該工具會產生一個包含以下內容的 plan.md 檔案:
- 可用工具 — 在你的環境中偵測到 JDK 和建置工具。
- 指引 — 使用者自訂的升級流程限制。
- 選項 — 運作中的分支與測試設定。
- 升級目標 — 每個元件的原始版本與目標版本。
- 技術堆疊 — 依賴性相容性分析,並探討不相容原因。
- 衍生升級 — 主要目標所需的額外升級(例如,升級至 Spring Boot 3.x 時,javax → jakarta 命名空間遷移)。
- 影響分析 — 詳細分析相依變更、原始碼變更、設定變更、CI/CD 變更及風險。
- 升級步驟 — 有序遷移步驟,並附有理由與驗證標準。
檢視計畫並在必要時做出修改,然後確認是否繼續進行。 關於進一步客製化的資訊,請參閱 「客製化升級計畫」。
小提示
確保計畫符合你期望的升級目標——例如從 Java 8 到 Java 21,從 Spring Boot 1.5 到 3.5。
執行升級
確認計畫後,代理會自動進入程式碼轉換階段。 作為此過程的一部分,它執行以下任務:
- 修改程式碼與設定檔以確保與目標版本相容。
- 執行建置驗證,確認專案在每個步驟都能成功編譯。
- 如果在計畫選項中啟用測試驗證,則執行測試驗證。
代理會反覆執行每個升級步驟,直到所有步驟都成功完成。 你可以隨時透過編輯器中的 progress.md 檔案來監控進度。
CVE 驗證與修復
程式碼轉換步驟完成後,代理程式會自動掃描相依性中的常見漏洞與暴露(CVE)問題。 若發現 CVE,代理程式會透過升級受影響的相依性來修復,無需人工介入。 最後的驗證步驟會執行,確認所有東西在 CVE 修正後仍能建置並通過測試。
檢視摘要
升級後,工具會產生一個 summary.md 檔案,內容包括:
- 執行摘要 — 一段簡要概述升級內容及其成果。
- 升級改進 — 一份前後對比表,附上主要優點。
- 建置與驗證 — 建置狀態與測試結果。
- 限制 — 升級後仍有無法修復的問題。
- 建議的下一步 行動 — 建議的後續行動,例如產生單元測試或處理任何未修正的 CVE。
- 補充細節 ——專案元資料、程式碼變更及 CVE 掃描結果。