Skip to main content

使用 GitHub Copilot 升级 Java 项目

可以使用 GitHub Copilot 来升级 Maven 和 Gradle Java 应用程序。

注意

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 升级(预览)”扩展。

  1. 打开 Visual Studio Code。
  2. 单击“Extensions”。
  3. 搜索“GitHub Copilot 应用现代化 - Java 升级(预览)”,然后单击“Download”。
  4. 重启 Visual Studio Code。

2.在智能体模式下使用 GitHub Copilot Chat,并生成升级计划

现在有了扩展,可以继续在智能体模式下使用 GitHub Copilot 并创建升级计划。

  1. 在 Visual Studio Code 中,打开 GitHub Copilot Chat 面板。

  2. 在聊天面板底部,从模式下拉列表中选择“Agent”****。

  3. 输入描述所需升级路径的提示。 例如:

    “Upgrade project to Java 21 and Spring Boot 3.2”

  4. 出现提示时,单击“Continue”以生成升级计划****

3.查看和编辑升级计划

GitHub Copilot 将分析项目的结构、JDK、依赖项和生成工具,然后根据具体情况生成 plan.md 升级计划,其中概述了源和目标 JDK 版本以及框架和库的升级路径。

  1. 单击 Visual Studio Code 中的新 plan.md 选项卡。
  2. 查看计划,并在必要时进行编辑。 确保计划中的版本与你的目标以及你已经指定的内容一致。
  3. 准备就绪后,请单击“Continue”****。

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

接下来,GitHub Copilot 将开始转换你的项目。 这涉及使用 OpenRewrite 通过预定义的配方应用代码更改,并通过生成/修复循环以迭代方式修复 Copilot 的剩余问题。

  1. 当系统提示“Run Upgrade Java code using OpenRewrite”时,单击“Continue”****。 请注意,此步骤可能需要一些时间。
  2. 当系统提��“Run Build project and fix errors”时,单击“Continue”****。

可以通过查看 Visual Studio Code 中的 progress.md 文件来跟踪此阶段的进度。

5.检查安全漏洞 (CVE) 和代码行为更改

为了确保可靠性和安全性,GitHub Copilot 执行了额外的检查。

  1. 当系统提示“Run Validate if any modified dependencies have known CVEs”时,请单击“Continue”****。

    如果检测到 CVE,Copilot 会尝试解决它们。 可以进行查看,并接受或拒绝更改。

  2. 当系统提示“Run Validate code behavior consistency”时,单击“Continue”****。

    如果发现不一致,Copilot 会再次尝试修复,你可以决定保留哪些内容。

此过程结束时,该工具会重新生成项目并运行一次最终验证。 如果只剩下不会阻止升级的小问题,则该过程结束。 否则,它会回到循环以解决未解决的问题。

6.查看升级摘要

完成后,Copilot 会在项目目录中生成一个 summary.md 文件,其中包含:

  • 项目元数据。
  • 修改的代码行。
  • 更新后的依赖项。
  • 代码更改说明。
  • 已解决的 CVE 和不一致。
  • 剩余的次要 CVE 问题(如果有)。