快速入门:通过 GitHub Copilot 进行应用现代化,实现 Java 项目升级 - Java 升级(预览版)

本快速入门介绍如何使用 GitHub Copilot 应用现代化升级 Java 项目 - Java 升级(预览版)。

先决条件

注释

如果使用 Gradle,则仅支持 Gradle 包装器版本 5+ 。 不支持 Kotlin DSL。

登录以使用 Copilot,然后安装所需的扩展

若要使用 GitHub Copilot,请在 Visual Studio Code 中登录到 GitHub 帐户。 选择 Visual Studio Code 顶部的 Copilot 图标以访问 GitHub Copilot 窗格。 有关设置 GitHub Copilot 的详细信息,请参阅 在 VS Code 中设置 GitHub Copilot

然后,使用以下步骤在 Visual Studio Code 中安装扩展:

  1. 在 Visual Studio Code 中,从活动栏中打开 “扩展 ”视图。
  2. 在市场中搜索 GitHub Copilot 应用现代化
  3. 选择 GitHub Copilot 应用现代化 扩展包。
  4. 在扩展页上,选择“ 安装”。
  5. 重新启动 Visual Studio Code。

安装完成后,Visual Studio Code 的角落中应会显示一条通知,确认成功。

有关详细信息,请参阅 安装 VS Code 扩展

选择要升级的 Java 项目

在本教程中,请选择以下示例存储库之一:

启动 GitHub Copilot 代理模式并启动升级

使用以下步骤启动 GitHub Copilot 代理模式并启动升级过程:

  1. 在 Visual Studio Code 中打开选定的 Java 项目。
  2. 打开 GitHub Copilot 聊天面板。
  3. 切换到代理模式。
  4. 输入提示,例如 将项目升级到 Java 21 和 Spring Boot 3.2
  5. 出现提示时,选择“ 继续 ”以生成升级计划。

Visual Studio Code 的屏幕截图,其中显示了一个示例升级计划。

查看和编辑升级计划

应用现代化 - Java 升级(预览版)分析当前工作区中的 Java 项目,包括其 JDK、生成工具和依赖项。 该工具生成一个 plan.md 文件,该文件概述了以下计划更改:

  • 源和目标 JDK 版本。
  • 框架和库升级路径。

查看计划并根据需要进行更改,然后选择 “继续” 继续。

小窍门

确保计划与所需的升级目标相匹配,例如 Java 8 到 Java 21、Spring Boot 2.7 到 3.2。

Visual Studio Code 的屏幕截图,展示了一个示例升级计划,其中升级目标被突出显示。

应用代码更改并修复生成问题

然后,GitHub Copilot 继续执行项目的代码转换阶段。 它使用名为 OpenRewrite 的开源工具根据特定食谱实现一些代码更改。 然后,AI 通过动态生成/修复循环解决剩余问题。 可以通过随时检查 progress.md markdown 文件来监视 Visual Studio Code 编辑器区域中的进度。

在流程的各个阶段,GitHub Copilot 会提示你继续。

对于 “确认 OpenRewrite 转换 ”步骤,请选择“继续使用 OpenRewrite 升级 Java 代码”。 此步骤可能需要几分钟时间。

对于 “批准动态生成/修复循环 步骤”,请选择“ 继续 ”生成项目并修复错误。

Copilot 反复迭代并继续修复错误,直到问题完全解决。 进度显示在 progress.md 文件中。 循环一直持续到项目成功构建。

Visual Studio Code 的屏幕截图,其中显示了 GitHub Copilot 聊天窗格,其中突出显示了 Build-Fix 输出和“继续”按钮。

检查漏洞和代码行为更改

在某些情况下,升级可能会导致代码行为更改或引入存在常见漏洞和暴露(CVE)问题的库。 该工具会针对这些问题执行额外的检查。

当 GitHub Copilot 提示 运行验证(如果任何修改的依赖项具有已知的 CVE)时,请选择“ 继续”。

如果找到 CVE,GitHub Copilot 代理模式将尝试修复它们。 查看 VS Code 中的更改,并确定是否保留这些更改。

Visual Studio Code 的屏幕截图,其中显示了 GitHub Copilot 聊天窗格,其中突出显示了 CVE 输出和“继续”按钮。

在 CVE 检查后,当系统提示 运行验证代码行为一致性时,选择“ 继续”。

如果发现问题,GitHub Copilot 代理模式会尝试解决这些问题。 决定是否保留或放弃更改。

检查完成后,GitHub Copilot 将重新生成项目并重新运行以前的检查。

如果仍存在不需要立即修复的次要问题,则升级已完成。 否则,GitHub Copilot 会返回去处理这些问题。

Visual Studio Code 的屏幕截图,其中显示了具有固定行的编辑器。

查看摘要

升级后,该工具会在 summary.md 文件中生成摘要,其中包括以下信息:

  • 项目信息。
  • 代码行已更改。
  • 更新了依赖项。
  • 汇总的代码更改。
  • 修复了 CVE 安全性和代码不一致问题(如果有)。
  • 未解决的次要 CVE 问题。

显示升级 Java 项目摘要内容的 Visual Studio Code 的屏幕截图。

后续步骤

快速入门:使用 GitHub Copilot 应用现代化生成单元测试 - Java 升级(预览版)