应用现代化 Java 的升级支持以下场景:
- 将 Java 开发工具包(JDK)升级到 Java 8、11、17、21 或 25。
- 将 Spring Boot 升级到版本 3.5。
- 将 Spring Framework 升级到版本 6.2+。
- 将 Java EE 升级到 Jakarta EE,最多升级到 Jakarta EE 10。
- 升级 JUnit。
- 将 第三方依赖项 升级到指定的版本。
- 将 Ant 升级到 Maven 构建。
本快速入门介绍如何使用 GitHub Copilot 应用现代化升级 Java 项目。
Prerequisites
- 启用了 GitHub Copilot 的 GitHub 帐户。 需要免费套餐、Pro、Pro+、Business 或 Enterprise 计划。
- 以下 IDE 之一:
- 最新版本的 Visual Studio Code。 必须是版本 1.101 或更高版本。
- Visual Studio Code 中的 GitHub Copilot。 有关设置说明,请参阅 在 Visual Studio Code 中设置 GitHub Copilot。 请务必在 Visual Studio Code 中登录到 GitHub 帐户。
- GitHub Copilot 应用现代化。 安装后重启 Visual Studio Code。
-
IntelliJ IDEA 的最新版本。 必须是 2023.3 或更高版本。
- GitHub Copilot。 必须是版本 1.5.59 或更高版本。 有关更多说明,请参阅 在 IntelliJ IDEA 中设置 GitHub Copilot。 请务必在 IntelliJ IDEA 中登录到 GitHub 帐户。
- GitHub Copilot 应用现代化。 安装后重启 IntelliJ IDEA。 如果没有安装 GitHub Copilot,可以直接安装 GitHub Copilot 应用现代化。
- 若要更有效地在应用现代化中使用 Copilot:在 IntelliJ IDEA 设置中,选择 “工具>GitHub Copilot 配置”窗口,然后选择“ 自动批准 ”和“ 信任 MCP 工具批注”。 有关详细信息,请参阅 配置 GitHub Copilot 应用现代化设置以优化 IntelliJ 体验。
- 最新版本的 Visual Studio Code。 必须是版本 1.101 或更高版本。
- 适用于源和目标 JDK 版本的 Java JDK。
- Maven 或 Gradle 用于生成 Java 项目。
- 由 Git 管理的使用 Maven 或 Gradle 的 Java 项目。
- 对于基于 Maven 的项目:访问公共 Maven Central 存储库。
- 在 Visual Studio Code 设置中,确保
chat.extensionTools.enabled设置为true. 此设置可能由组织控制。
Note
如果使用 Gradle,则仅支持 Gradle 包装器版本 5+ 。 不支持 Kotlin 域特定语言(DSL)。
IntelliJ IDEA 尚不支持该函数 My Tasks 。
登录以使用 Copilot,然后安装所需的扩展
若要使用 GitHub Copilot,请在 Visual Studio Code 中登录到 GitHub 帐户。 选择 Visual Studio Code 顶部的 Copilot 图标以访问 GitHub Copilot 窗格。 有关设置 GitHub Copilot 的详细信息,请参阅 在 VS Code 中设置 GitHub Copilot。
然后,使用以下步骤在 Visual Studio Code 中安装扩展:
- 在 Visual Studio Code 中,从活动栏中打开 “扩展 ”视图。
- 在市场中搜索 GitHub Copilot 应用现代化 。
- 选择 GitHub Copilot 应用现代化。
- 在扩展页上,选择“ 安装”。
- 重新启动 Visual Studio Code。
Tip
若要在 IntelliJ 中获得最佳体验,建议配置一些关键设置。 有关详细信息,请参阅 配置 GitHub Copilot 应用现代化设置以优化 IntelliJ 体验。
安装完成后,Visual Studio Code 的角落中应会显示一条通知,确认成功。
有关详细信息,请参阅 安装 VS Code 扩展。
选择要升级的 Java 项目
在本教程中,请选择以下示例存储库之一:
- Maven: uportal-messaging
- Gradle: docraptor-java
启动 GitHub Copilot 代理模式并启动升级
使用以下步骤启动 GitHub Copilot 代理模式并启动升级过程:
在 Visual Studio Code 中打开选定的 Java 项目。
打开 GitHub Copilot 聊天面板。
切换到代理模式。
请输入诸如 使用 Java 升级工具将项目升级到 Java 21 或 使用 Java 升级工具将项目升级到 Java 21 和 Spring Boot 3.2 等提示,以包含框架信息。
Note
如果需要仅升级框架或第三方依赖项,请参阅 使用 GitHub Copilot 应用现代化升级框架或第三方依赖项。
出现提示时,选择“ 继续 ”以生成升级计划。
查看和编辑升级计划
GitHub Copilot 应用现代化分析当前工作区中的 Java 项目,包括其 JDK、生成工具和依赖项。 该工具生成一个 plan.md 文件,该文件概述了以下计划更改:
- 源和目标 JDK 版本。
- 框架和库升级路径。
查看计划并根据需要进行更改,然后选择 “继续” 继续。 有关进一步自定义的信息,例如添加更多生成工具参数,请参阅 “自定义升级计划”。
Tip
确保计划与所需的升级目标相匹配,例如 Java 8 到 Java 21、Spring Boot 2.7 到 3.2。
应用代码更改并修复生成问题
然后,GitHub Copilot 继续执行项目的代码转换阶段。 它使用名为 OpenRewrite 的开源工具根据特定食谱实现一些代码更改。 然后,AI 通过动态生成/修复循环解决剩余问题。 可以通过随时检查 progress.md markdown 文件来监视 Visual Studio Code 编辑器区域中的进度。
在流程的各个阶段,GitHub Copilot 会提示你继续。
对于 “确认 OpenRewrite 转换 ”步骤,请选择“继续使用 OpenRewrite 升级 Java 代码”。 此步骤可能需要几分钟时间。
对于 “批准动态生成/修复循环 步骤”,请选择“ 继续 ”生成项目并修复错误。
Copilot 反复迭代并继续修复错误,直到问题完全解决。 进度显示在 progress.md 文件中。 循环一直持续到项目成功构建。
检查漏洞和代码行为更改
在某些情况下,升级可能会导致代码行为更改或引入存在常见漏洞和暴露(CVE)问题的库。 该工具会针对这些问题执行额外的检查。
当 GitHub Copilot 提示 运行验证(如果任何修改的依赖项具有已知的 CVE)时,请选择“ 继续”。
如果找到 CVE,GitHub Copilot 代理模式将尝试修复它们。 查看 VS Code 中的更改,并确定是否保留这些更改。
在 CVE 检查后,当系统提示 运行验证代码行为一致性时,选择“ 继续”。
如果发现问题,GitHub Copilot 代理模式会尝试解决这些问题。 决定是否保留或放弃更改。
检查完成后,GitHub Copilot 将重新生成项目并重新运行以前的检查。
如果仍存在不需要立即修复的次要问题,则升级已完成。 否则,GitHub Copilot 会返回去处理这些问题。
查看摘要
升级后,该工具会在 summary.md 文件中生成摘要,其中包括以下信息:
- 项目信息。
- 代码行已更改。
- 更新了依赖项。
- 汇总的代码更改。
- 修复了 CVE 安全性和代码不一致问题(如果有)。
- 未解决的次要 CVE 问题。