GitHub Copilot 应用现代化 - Java 升级(预览版)

本文概述了 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 Spring 应用版本 - Java 升级(预览版):


常见用例

GitHub Copilot 应用现代化 - Java 升级(预览版)可用于以下用例。

  • 升级 Java 运行时版本。 将应用程序从 Java 8 或 11 无缝升级到较新版本(如 Java 17 或 21)。
  • 升级到较新的框架版本。 从 Spring Boot 2.7 过渡到 3.2 等版本,并智能地处理破坏性更改。
  • 检测 CVE 漏洞。 在升级过程中检测并解决第三方依赖项中的已知安全漏洞。
  • 确保代码行为一致性。 通过检测和解决行为不一致,验证应用程序的行为是否与升级后的行为相同。
  • 为测试覆盖率较低的项目生成单元测试用例。 单元测试生成工具能够独立于升级过程创建单元测试用例。

还有一个单独的工具可帮助你将应用迁移到 Azure。 GitHub Copilot App Modernization for Java(预览版)是一种由 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.自动代码转换

下面是代码转换的位置。 此转换主要包括以下两个主要步骤:

  1. 该工具首先使用名为 OpenRewrite 的开源工具应用代码转换。
  2. 如果存在任何剩余问题,GitHub Copilot 会动态解决这些问题,直到没有更多问题。

在此过程中,开发人员可以直接通过 progress.md 文件查看进度。

5.验证

在上一阶段完成后,该工具将运行其他检查,包括以下检查:

  • 更新的依赖项中的 CVE 安全漏洞。
  • 代码行为发生变化。

该工具会自动尝试解决发现的问题,并使你能够查看和批准修补程序。

6. 最终验证和摘要

完成验证阶段后,该工具将运行最终检查并显示最终摘要。 在此阶段,该工具执行以下任务:

  • 重新生成项目并重新运行验证检查。
  • summary.md 文件中提供全面的升级摘要,包括依赖项更改、文件差异和提交日志。

GitHub Copilot 应用现代化 - Java 升级(预览版)旨在通过删除 Java 升级中的大量手动工作和猜测来增强你的能力,从而为旧代码库现代化提供了更安全、更快的路径。

后续步骤

快速入门:使用 GitHub Copilot 应用现代化升级 Java 项目 - Java 升级(预览版)