借助智能 GitHub Copilot 副驾驶 的 Agent Mode 升级 Java 项目

对于很多开发者来说,无论是迁移到云端,还是升级 Java 运行时环境,改造传统 Java 应用并不轻松:依赖冲突、弃用组件、老旧部署方式以及安全漏洞,常常让升级之路步履维艰。在这篇文章中,微软将带开发者深入了解如何借助智能 GitHub Copilot 副驾驶® 的 Agent Mode(国际版),快速现代化 Java 项目。

通过将智能 GitHub Copilot agent mode 和 GitHub Copilot app modernization VS Code 插件配合使用,微软为开发者提供交互式的升级体验,一步步引导完成项目改造,减少错误,提升效率。

虽然本文聚焦 Java 项目,但 GitHub Copilot agent mode 同样支持在 Visual Studio 中对 .NET 应用进行端到端现代化改造,包括 AI 辅助升级、云就绪迁移路径,以及一键部署到 Azure(国际版)------全程可视化操作,显著降低人工成本,加速价值交付。

在这篇指南中,开发者将学到如何在 Visual Studio Code 中使用这些工具完成以下任务:

🔵 分析 Java 项目并生成升级计划

🔵 使用 GitHub Copilot 副驾驶® 自动应用变更

🔵 修复构建问题并验证测试结果

🔵 升级后自动检测并修复 CVE 漏洞

01 什么是 GitHub Copilot agent mode

GitHub Copilot agent mode 是智能 GitHub Copilot 副驾驶® 的高级功能,它能理解目标,用一系列自动拆解的小任务,真正把想法变为现实。

只需一句提示,它就能自动:找出相关文件或生成新文件、写好代码逻辑、提出终端命令或工具调用建议、遇到运行错误还能尝试自动修复(Self-healing)。

它具备以下能力:

🔵 理解高层次的自然语言指令

🔵 在上下文中做出智能决策

🔵 自动执行多步骤任务

🔵 根据实时反馈持续迭代优化

下方流程图展示了 GitHub Copilot agent mode 如何将指令连接到一个实时反馈循环中:Agent 会与代码、工作区、工具以及大型语言模型(LLM)交互,不断进行规划、执行和优化,从而实现更智能、更高效的开发体验。

02 开始之前,需要准备的内容

为了顺利跟着指南操作,请确保已准备好以下内容:

Visual Studio Code

智能 GitHub Copilot 副驾驶® 许可(Pro、Pro+、Business 和 Enterprise 用户均可使用智能 GitHub Copilot 副驾驶® 的 coding agent 国际版功能)

GitHub Copilot App Modernization -- upgrade for Java 插件

一个基于 Git 的、使用 Maven 或 Gradle 构建的(只要是 JDK 8 或更高版本即可)老旧 Java 项目

当开发者使用 Java 升级扩展启动 agent 会话时,智能 GitHub Copilot 副驾驶®(国际版)将执行以下操作:

  • 分析 Java 代码库
  • 生成可定制的升级方案
  • 使用 OpenRewrite 等工具执行代码转换
  • 迭代修复构建错误
  • 通过测试执行验证变更
  • 扫描 CVE 漏洞,提供代码验证行为并建议安全替代方案
  • 生成完整摘要报告

03 接下来开始操作

Step 1:在 VS Code 中打开 Java 项目

开发者可以使用自己的项目,或者使用一个示例,确保已通过 Git 初始化版本控制,并具备可运行的测试套件(最好包含单元测试)。

git clone https://github.com/your-org/your-legacy-java-app.git

cd your-legacy-java-app

code

Step 2:在 VS Code 中启动 Agent 会话

打开智能 GitHub Copilot 副驾驶®(国际版)的聊天侧边栏,启动一个新的 Agent 会话。选择工具:GitHub Copilot App Modernization -- upgrade for Java。

在会话中粘贴以下指令开始操作:

Using Java upgrade tools,upgrade this project to Java 21. Analyze deprecated APIs, update Gradle dependencies, and propose a safe, testable migration plan.

Step 3: 让智能 GitHub Copilot 副驾驶® 扫描并制定升级计划

智能 GitHub Copilot 副驾驶® 会自动分析项目并生成升级方案,包括:

  • 当前使用的 JDK 版本
  • 构建工具配置(如 Gradle 的 build.gradle 或 Maven 的 pom.xml)
  • 失效或存在安全风险的依赖项
  • 弃用的 API 和语言特性

升级计划会以结构化形式呈现在智能 GitHub Copilot 副驾驶® 聊天窗口中,开发者可以进一步调整或排除某些模块。

Step 4: 接受建议并修复错误

当开发者批准了升级方案后,智能 GitHub Copilot 副驾驶®(国际版)会开始升级文件、调整导入路径、修复语法错误。如果出现构建错误,它会进入"修复 + 测试"循环,直到项目成功编译。

智能 GitHub Copilot 副驾驶® (国际版)将生成一份详细的升级报告,包括:

  • 修改的文件和提交记录
  • API 和依赖更新详情
  • 待办事项和下一步建议

示例代码变更:

// 升级前(弃用构造器)

View view = this.resolver.resolveViewName("intro", new Locale("EN"));

// 升级后(Java 21)

View view = this.resolver.resolveViewName("intro", Locale.of("EN"));

Step 5:迁移到 Azure

为了让应用具备云部署能力,可以运行 App 评估,识别云就绪问题。在 GitHub Copilot app modernization extension UI 中点击 Migrate to Azure。

根据部署目标,智能 GitHub Copilot 副驾驶® 会识别迁移问题并给出建议。开发者可以在 appmod-java/appcat 文件夹下修改 assessment-config.yaml 来设置部署目标。在下方示例中,选择 Azure Kubernetes Service(AKS)作为部署目标。部署目标还可以是 Azure App Services、Azure App Service Managed Instance、Azure Container Apps、AKS Automatic 等。

评估报告将自动生成,并列出详细的云就绪问题。点击 Auth Migration 类别下的迁移按钮,即可将本地身份认证迁移到 Microsoft Entra ID。

与其他迁移流程一样,智能 GitHub Copilot 副驾驶® 会先生成迁移计划,列出依赖更新和配置变更。当迁移计划获得批准后,将自动执行迁移步骤。

智能 GitHub Copilot 副驾驶® 总结了该场景中进行的变更事项。包括:

🔵 在构建配置中添加了 Microsoft Entra ID 依赖项

🔵 在 Application.properties 中添加了 Microsoft Entra ID 配置

🔵 为 Spring Security 添加了配置适配器以启用 Microsoft Entra ID

🔵 添加了文档说明,如何在 Spring WebFlow 应用中实现 Microsoft Entra ID 身份验证

Step 6:验证变更并查看报告

代码更新完成后,运行测试套件验证结果。智能 GitHub Copilot 副驾驶® 会引导开发者使用项目构建系统运行测试。

Maven 项目:

./mvnw test

Gradle 项目:

./gradlew test

如果测试遇到失败,智能 GitHub Copilot 副驾驶® 会协助调试,甚至根据变更自动补充缺失测试用例。所有操作都遵循"人类参与"原则,在开发者授意后执行。

04 自动 CVE 扫描

GitHub Copilot App Modernization 会自动扫描所有变更依赖中的 CVE 漏洞,智能推荐安全版本或替代库,确保安全合规。

05 部署到 Azure

部署到 Azure 往往复杂且耗时。现在,这一步已经被简化、且自动化了。

06 Java 项目现代化完成

借助 GitHub Copilot App Modernization,开发者可以轻松将传统 Java 项目升级为云就绪应用。它不仅支持 Java 升级和迁移,还能解决构建问题、验证变更、增强测试覆盖率------全程由 AI 技术引导,一步到位。

07 立即体验!

无论是 Java、.NET 还是下一次迁移计划,GitHub Copilot Agent Mode 都能帮开发者分析大型代码库、制定升级方案、自动修复问题,大幅节省人工调试时间!

声明:

  1. 智能 GitHub Copilot 副驾驶® 及其高级功能、组合插件,目前仅在 Azure 国际版可用。
  2. 本文介绍的操作方法以及代码截图,目前也仅适用于 Azure 国际版。

领驭科技作为微软中国南区核心合作伙伴及HKCSP 1T首批授权云服务商,正深度整合Azure OpenAI的强大能力,将其自然语言处理、分析及推理等先进功能融入自身产品与行业解决方案中。这一举措不仅延续了微软在智能化工具领域的创新基因------如GitHub Copilot Agent Mode对Java项目升级的自动化支持、云就绪迁移路径的AI辅助规划,以及CVE漏洞的智能修复能力------更通过Azure OpenAI的大规模生成式AI模型,为企业客户开辟了更广阔的创新应用场景。

相关推荐
chenchihwen6 小时前
AI代码开发宝库系列:Function Call
人工智能·python·1024程序员节·dashscope
黑翼杰克斯6 小时前
如何裁剪u-boot,保留其必要功能,使体积尽可能小
linux·1024程序员节
.格子衫.6 小时前
022数据结构之树状数组——算法备赛
数据结构·算法·1024程序员节
lpfasd1237 小时前
第十章-Tomcat性能测试与实战案例
1024程序员节
lpfasd1237 小时前
第二章-Tomcat核心架构拆解
1024程序员节
IT古董7 小时前
【第五章:计算机视觉-项目实战之推荐/广告系统】2.粗排算法-(4)粗排算法模型多目标算法(Multi Task Learning)及目标融合
人工智能·算法·1024程序员节
RainSky_7 小时前
LNMP 一键安装包部署 Django 项目
后端·django·1024程序员节
newxtc8 小时前
【江苏政务服务网-注册_登录安全分析报告】
人工智能·安全·yolo·政务·1024程序员节·安全爆破
上去我就QWER8 小时前
Python下常用开源库
python·1024程序员节