[go: up one dir, main page]

Skip to main content

使用 GitHub Copilot 将 Java 应用程序现代化

GitHub Copilot 可以通过评估代码库、确定升级路径,并自动执行修正和容器化任务,促进 Java 应用程序的现代化和迁移。

Visual Studio Code 中的 GitHub Copilot 应用现代化扩展通过自动识别过时的框架、停用的 API,以及升级障碍,来实现 Java 升级自动化。 Copilot 编码智能体 应用代码更改、更新生成文件,并解决生成和 CVE 问题。

扩展生成的建议和报告可帮助团队快速采用新技术并降低技术债务。 Copilot 通过可操作的步骤和摘要指导你完成升级,加速并保护迁移,同时减少手动操作。

有关扩展功能、设置和用户界面说明,请参阅 Microsoft 文档中的 GitHub Copilot 应用现代化文档

现代化框架

使用 Java 升级扩展启动代理会话时,该扩展将帮助你使用以下框架实现 Java 应用程序的现代化。

  •         **执行评估任务**。 该扩展可以分析代码、配置和依赖项,从而评估应用程序的当前状态。
    
  •         **创建可自定义的现代化计划**。 根据评估,该扩展可以建议现代化路径,包括必要的框架和库更新。
    
  •         **早期识别问题**。 该扩展标识依赖项、过时的库和语言功能以及潜在的迁移问题。 该扩展提供可作的策略来修正问题。
    
  •         **自定义计划**。 根据应用程序的特定需求编辑现代化计划,例如合并组织标准和做法、排除某些组件或确定特定功能或设计模式的优先级。
    
  •         **实现计划**。 该扩展可以帮助应用代码更改、更新生成文件、重构已弃用的 API 以及解决生成和语法问题。 该扩展将在每个步骤后自动修复生成错误并执行测试验证,以确保稳定性和无错误更改。 <!-- markdownlint-disable-line GHD046 -->
    
  •         **查看更改**。 该扩展可以生成详细的升级报告,汇总应用的更改,并列出任何未解决的问题和现代化剩余步骤。
    
  •         **生成单元测试**。 该扩展会自动评估现有测试,并生成新的测试文件并将其添加到工作区。 生成一份报告,汇总生成之前和之后的测试结果。
    
  •         **容器化应用程序**。 该扩展可以自动生成 Dockerfiles、构建映像,并验证所有内容,以确保您现代化的应用程序能够在容器服务中运行,例如 Azure Kubernetes 服务(AKS)、Azure 容器应用(ACA)和 AKS Automatic,从而简化部署和提高可扩展性。
    
  •         **准备部署**。 该扩展可以通过生成脚本和配置等部署项目来帮助为容器化和部署准备应用程序。
    
  •         **自动部署到 Azure**。 该扩展可帮助你将现代化应用程序部署到 Azure,生成必要的项目和 Azure 资源,以及执行执行步骤。
    

可以通过使用 Copilot 来帮助完成复杂的现代化任务,从而改善团队对应用程序代码库的理解,并节省时间和精力:

  • 反向工程和代码转换
  • 漏洞和依赖项分析,以及代码行为检查和修正
  • 自动生成资产、文档和升级报表
  • 测试生成和评估
  • 部署自动化

现代化工作流概述

在此示例中,我们将使用 Visual Studio Code 中的 GitHub Copilot 应用现代化扩展来完成实现 Java 应用程序现代化的高级步骤。

有关详细的先决条件和说明,请参阅 Microsoft 文档中的快速入门:使用 GitHub Copilot 应用现代化升级 Java 项目

注意

在现代化工作流中,Copilot 编码智能体 在执行特定操作之前,可能会经常提示你进行确认。

1.打开 Java 项目

使用 VS Code 打开项目文件夹。

建议操作

  • 在继续之前,请确保项目构建成功。
  • 如果遇到生成问题,可以在开始现代化过程之前使用 Copilot 来帮助解决这些问题。

2.启动现代化工作区

启动 Copilot 对话助手 并在代理模式下开启新会话。 从可用工具中。选择 **GitHub Copilot 应用现代化 – Java 升级 **。

3.分析项目以获取升级机会

Copilot 将扫描代码库。 分析包括:

  • 检测过时的框架(例如 Spring Boot、Jakarta EE、Java SE 版本)。
  • 标识已弃用的 API 和过时模式。
  • 有关升级机会的建议。

可以在编辑器中查看结果和结构化升级计划,该计划将显示:

  • 框架和依赖项的当前和建议版本。
  • 需要迁移或重构的代码位置。
  • 升级阻碍因素或不兼容的依赖项。

建议操作

  • 在继续升级之前,请查看并自定义现代化计划。

4. 应用 Copilot 升级建议

使用 Copilot 应用或检查代码更改、更新生成文件和重构 API。

如果发现生成错误,Copilot 可以进入修复和测试循环,直到项目编译成功。

Copilot 编码智能体 自动化更改可能包括:

  • 更新 pom.xmlbuild.gradle 文件以获取新的依赖项版本。
  • 生成拉取请求或直接提交更改。
  • 重构代码以适应 API 的更改。 例如,从 javax.* 命名空间迁移到 jakarta.* 命名空间。
  • 建议或应用代码转换以应对破坏性更改。

Copilot 将迭代并继续修复错误,直到项目成功生成,不再有需要修复的问题。 不需要立即修复的次要问题可能仍然存在。 这些不会阻止升级完成。

建议操作

  • 在接受之前,请在差异编辑器中查看所有代码更改。
  • 使用Copilot进一步解释和记录代码更改。
  • 当扩展提示你时,接受选项以检查因已知 CVE问题而修改的依赖项,并验证代码行为的一致性。
  • 查看剩余的任何问题并评估其重要性。

5. 查看升级报告和建议的后续步骤

升级过程完成后,Copilot 将生成一份总结升级报告,其中包括:

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

建议操作

  • 查看报告以了解所做的更改。
  • 按照任何建议的后续步骤完成现代化。

完成现代化

为支持现代化而进行进一步的工作可能包括:

  •           彻底**检查**初始现代化和代码更改。 确保满足公司的编码标准和最佳做法。
    
  • 仔细查看修改的代码。 例如,检查生成的代码是否符合项目的用途和体系结构。 有关更多建议,请参阅 查看 AI 生成的代码
  •           **修复错误**。 检查特定内容是否存在细微错误,并使用自己的调试和代码检查工具来评估新内容。
    
  •         **编写测试** 并确定升级项目的测试差距。
    
  •           通过删除不再需要的任何文件来**清理**项目。
    
  •           使用新语言**重构**代码。 现代化过程可能会导致一个项目的体系结构基于原始项目,但这不再是满足需求的理想或最佳解决方案。 现在,你可能想要重构代码,以充分利用语言和所用框架的功能。
    
  •         **更新文档**。 项目信息和贡献文件现在可能已过期,需要重写。
    
  •         **容器化**。 更新应用程序代码,生成 Dockerfiles 等容器化文件,并生成映像以测试有效性。 如果需要,Copilot 可以执行这些容器化任务,并创建一个详细的后续步骤的综合计划。
    
  •         **将现代化** 应用程序部署到目标环境,包括Microsoft Azure 等云平台。