本文提供 GitHub Copilot 應用程式現代化 - Java 升級的概觀(預覽版)。
企業經常在開發周期處理技術債務,升級是一項共同的任務。 它可能需要大量的時間和資源來升級 Java 運行時間、架構和相依性。
GitHub Copilot 應用程式現代化 - Java 的升級 (預覽) 是以 AI 為基礎的解決方案,其設計目的是協助更新 Java 應用程式。 此工具會使用 AI 來執行下列工作:
- 分析專案及其相依性,並提出升級計劃。
- 執行計劃以轉換專案。
- 自動修正進度期間的問題。
- 報告所有詳細數據,包括認可、記錄和輸出。
- 在升級之後,執行常見弱點和暴露程度 (CVE) 安全性弱點和程式代碼不一致檢查。
- 顯示摘要,包括檔案變更、更新的相依性,以及修正的問題。
- 與升級程式分開產生單元測試案例。
此工具會將 GitHub Copilot 的 AI 功能與 OpenRewrite 等開放原始碼工具整合,以自動化複雜的升級步驟。 它同時支援 Maven 和 Gradle 專案,以及以 Java 版本 8、11、17 和 21 之間的升級為目標。 此工具特別著重於將使用 Spring Boot 架構的應用程式現代化。 升級程式可讓您控制,並藉由顯示所有記錄和輸出來確保透明度。
下列影片示範如何使用 GitHub Copilot 應用程式現代化 - Java 升級來升級 Java Spring 應用程式的版本(預覽):
常見使用案例
GitHub Copilot 應用程式現代化 - 適用於 Java 的升級 (預覽版) 可用於下列使用案例。
- 升級 Java 執行環境版本。 順暢地將您的應用程式從 Java 8 或 11 升級至更新版本,例如 Java 17 或 21。
- 升級至較新的架構版本。 從 Spring Boot 2.7 過渡至 3.2 等版本,智能處理破壞性變更。
- 偵測 CVE 弱點。 在升級程式期間偵測並解決第三方相依性中的已知安全性弱點。
- 確保程式代碼行為一致性。 藉由偵測並解決行為不一致,確認您的應用程式在升級后的行為相同。
- 針對具有低測試涵蓋範圍的項目產生單元測試案例。 單元測試產生工具能夠獨立於升級程式建立單元測試案例。
另外還有一個可協助您將應用程式遷移至 Azure 的個別工具。 適用於 Java 的 GitHub Copilot 應用程式現代化 (預覽版) 是一種 AI 支援的工具,可提供程式碼評量和補救,並確保在一個解決方案中成功建置,提高開發人員的速度、品質和信心。 如需詳細資訊,請參閱 適用於 Java 的 GitHub Copilot 應用程式現代化 (預覽版) 。
概念
GitHub Copilot 應用程式現代化 - Java 升級 (預覽版) 遵循 Visual Studio Code 中的引導式多階段升級工作流程。 下列各節提供工具運作方式的概念模型:
1.初始提示
您可以在 Visual Studio Code 的代理程式模式中提供初始提示,例如 將 Java 項目升級至 Java 17 和 Spring Boot 3.2。
2. 專案分析
此工具會根據這個提示來評估工作區中目前的 Java 項目結構,包括建置工具 - Maven 或 Gradle - JDK 版本和相依性。
接著,此工具會在 plan.md 檔案中產生初始升級計劃,其中概述規劃的變更。
3.規劃自定義
在此步驟中,您可以檢閱和編輯升級計劃,以調整 JDK、架構或第三方連結庫的目標版本。 確認方案之後,升級就會開始。
4.自動化程式代碼轉換
以下是程式代碼轉換的發生位置。 此轉換主要包含下列兩個主要步驟:
- 此工具會先使用名為 OpenRewrite 的開放原始碼工具來套用程式代碼轉換。
- 如果有剩餘的問題,GitHub Copilot 會以動態方式解決這些問題,直到沒有其他問題為止。
在此程式中,開發人員可以直接透過 progress.md 檔案查看進度。
5.驗證
在上一個階段完成之後,此工具會執行其他檢查,包括下列檢查:
- 更新相依性中的 CVE 安全性弱點。
- 程式代碼行為變更。
此工具會自動嘗試解決探索到的問題,並可讓您檢閱和核准修正程式。
6.最終驗證和摘要
當驗證階段完成時,此工具會執行最終檢查,並呈現最終摘要。 在這個階段中,此工具會執行下列工作:
- 重建專案並重新執行驗證檢查。
- 在 summary.md 檔案中提供完整的升級摘要,包括相依項目變更、檔案差異和變更紀錄。
GitHub Copilot 應用程式現代化 - Java 升級 (預覽版) 的設計目的是讓您從 Java 升級中移除大部分的手動工作和猜測,為舊版程式代碼基底現代化提供更安全且更快速的路徑。