注意
GitHub Copilot 应用程序现代化 - Java 升级目前处于 公共预览版 阶段,可能会发生更改。
简介
GitHub Copilot 可以帮助简化 Java 应用程序升级过程。 “GitHub Copilot 应用程序现代化 - Java 升级”Visual Studio Code 扩展可协助完成升级 Java 项目的运行时和/或框架版本的每一步。
- 分析项目和依赖项以生成升级计划。
- 根据计划执行代码转换。
- 在升级期间自动修复议题。
- 提供详细的日志、提交历史记录和输出。
- 在升级后执行安全扫描 (CVE) 和行为一致性检查。
- 汇总关键更改,包括更新后的依赖项和已解决的议题。
- 独立于升级过程生成单元测试。
此解决方案同时支持 Maven 和 Gradle 生成工具,并有助于 Java 版本 8、11、17 和 21 之间的升级。
先决条件
开始之前,必须具备以下条件:
- ********GitHub Copilot Business 或 GitHub Copilot Enterprise 订阅计划。
- 最新版本的 Visual Studio Code。
- 在 Visual Studio Code 中安装“GitHub Copilot 应用现代化 - Java 升级(预览)”扩展。
- 已安装的源和目标 JDK 版本。
- 使用 Maven 或 Gradle 的基于 Git 的 Java 项目。
- 对于基于 Maven 的项目,需要可以访问公共 Maven Central 仓库。
注意
对于 Gradle 项目,仅支持基于包装器的生成 (Gradle v5+)。 目前不支持使用 Kotlin DSL 的项目。
升级 Java 项目
1.安装所需的扩展
首先需要安装 Visual Studio Code 的“GitHub Copilot 应用现代化 - Java 升级(预览)”扩展。
- 打开 Visual Studio Code。
- 单击“Extensions”。
- 搜索“GitHub Copilot 应用现代化 - Java 升级(预览)”,然后单击“Download”。
- 重启 Visual Studio Code。
2.在智能体模式下使用 GitHub Copilot Chat,并生成升级计划
现在有了扩展,可以继续在智能体模式下使用 GitHub Copilot 并创建升级计划。
-
在 Visual Studio Code 中,打开 GitHub Copilot Chat 面板。
-
在聊天面板底部,从模式下拉列表中选择“Agent”****。
-
输入描述所需升级路径的提示。 例如:
“Upgrade project to Java 21 and Spring Boot 3.2”
-
出现提示时,单击“Continue”以生成升级计划****
3.查看和编辑升级计划
GitHub Copilot 将分析项目的结构、JDK、依赖项和生成工具,然后根据具体情况生成 plan.md
升级计划,其中概述了源和目标 JDK 版本以及框架和库的升级路径。
- 单击 Visual Studio Code 中的新
plan.md
选项卡。 - 查看计划,并在必要时进行编辑。 确保计划中的版本与你的目标以及你已经指定的内容一致。
- 准备就绪后,请单击“Continue”****。
4.应用代码更改并修复生成问题
接下来,GitHub Copilot 将开始转换你的项目。 这涉及使用 OpenRewrite 通过预定义的配方应用代码更改,并通过生成/修复循环以迭代方式修复 Copilot 的剩余问题。
- 当系统提示“Run Upgrade Java code using OpenRewrite”时,单击“Continue”****。 请注意,此步骤可能需要一些时间。
- 当系统提��“Run Build project and fix errors”时,单击“Continue”****。
可以通过查看 Visual Studio Code 中的 progress.md
文件来跟踪此阶段的进度。
5.检查安全漏洞 (CVE) 和代码行为更改
为了确保可靠性和安全性,GitHub Copilot 执行了额外的检查。
-
当系统提示“Run Validate if any modified dependencies have known CVEs”时,请单击“Continue”****。
如果检测到 CVE,Copilot 会尝试解决它们。 可以进行查看,并接受或拒绝更改。
-
当系统提示“Run Validate code behavior consistency”时,单击“Continue”****。
如果发现不一致,Copilot 会再次尝试修复,你可以决定保留哪些内容。
此过程结束时,该工具会重新生成项目并运行一次最终验证。 如果只剩下不会阻止升级的小问题,则该过程结束。 否则,它会回到循环以解决未解决的问题。
6.查看升级摘要
完成后,Copilot 会在项目目录中生成一个 summary.md
文件,其中包含:
- 项目元数据。
- 修改的代码行。
- 更新后的依赖项。
- 代码更改说明。
- 已解决的 CVE 和不一致。
- 剩余的次要 CVE 问题(如果有)。