对于很多开发者来说,无论是迁移到云端,还是升级 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 都能帮开发者分析大型代码库、制定升级方案、自动修复问题,大幅节省人工调试时间!
声明:
- 智能 GitHub Copilot 副驾驶® 及其高级功能、组合插件,目前仅在 Azure 国际版可用。
- 本文介绍的操作方法以及代码截图,目前也仅适用于 Azure 国际版。
领驭科技作为微软中国南区核心合作伙伴及HKCSP 1T首批授权云服务商,正深度整合Azure OpenAI的强大能力,将其自然语言处理、分析及推理等先进功能融入自身产品与行业解决方案中。这一举措不仅延续了微软在智能化工具领域的创新基因------如GitHub Copilot Agent Mode对Java项目升级的自动化支持、云就绪迁移路径的AI辅助规划,以及CVE漏洞的智能修复能力------更通过Azure OpenAI的大规模生成式AI模型,为企业客户开辟了更广阔的创新应用场景。