本文概述了Java开发人员如何在
注释
GitHub Copilot CLI 适用于 GitHub Copilot Pro、GitHub Copilot Pro+、GitHub Copilot Business 和 GitHub Copilot Enterprise 计划。 如果从组织收到Copilot,则必须在组织的设置中启用Copilot CLI 策略。
通过使用 Copilot CLI 实现现代化,可以直接从终端运行现代化任务,而无需切换到 IDE。 此方法支持交互式(人机循环)和批处理工作流。
你能做什么
| 能力 | Description |
|---|---|
| Java 升级 | 升级Java版本(8 → 11 → 17 → 21 → 25),将 Spring Boot 2.x 迁移到 3.x、javax 到 jakarta,以及弃用的 API |
| Azure迁移 | 评估和迁移Java应用程序到Azure服务(Azure 服务总线、Azure SQL、Redis、Azure 密钥保管库、Application Insights、托管标识) |
| CVE 和漏洞修复 | 扫描和修复 Maven 依赖项中的 CVE 漏洞,包括 Log4j、Spring、Jackson 和 OWASP 依赖项分析 |
| 应用程序重新架构 | 结构性重构,例如将单体应用拆分为微服务、对遗留 UI 进行现代化改造,以及模块提取 |
| 部署到 Azure | 将升级或迁移Java应用程序直接部署到Azure |
先决条件
- GitHub Copilot CLI。
- GitHub Copilot 订阅 有关详细信息,请参阅 Copilot 计划。
- Node.js 版本 22 或更高版本。
注释
Azure帐户仅用于将资源部署到Azure,在使用GitHub Copilot现代化进行代码更改时不需要。
安装插件
添加市场并安装插件:
copilot plugin marketplace add microsoft/github-copilot-modernization copilot plugin install github-copilot-modernization@github-copilot-modernization通过列出已安装的插件来验证是否已安装插件:
/plugin list应在列表中看到
github-copilot-modernization@github-copilot-modernization。
小窍门
若要在新版本可用时更新插件,请运行:
copilot plugin update github-copilot-modernization@github-copilot-modernization
启动现代化任务
选项 1:直接从代理开始
导航到Java项目文件夹,并使用现代化代理启动 Copilot CLI:
cd /path/to/your/java-app
copilot --agent=github-copilot-modernization:modernize
选项 2:从 Copilot CLI 内部选择代理
如果已在 Copilot CLI 会话中,请使用 /agent 命令切换到现代化代理:
/agent
从列表中选择modernize。
Important
在运行任何现代化提示词之前,您必须先选择 github-copilot-modernization:modernize 代理。 如果不选择代理,Copilot CLI 将使用默认代理,该代理无法使用插件提供的完整多代理业务流程和专用迁移功能。
运行现代化提示
代理处于活动状态后,请用自然语言描述所需内容:
modernize my application
或者更具体:
upgrade this app to Java 21 and Spring Boot 3.2
migrate this Spring Boot app to Azure
fix CVE vulnerabilities in my project
对于无人参与的执行,请使用标志 --allow-all :
copilot --agent=github-copilot-modernization:modernize --allow-all
工作流的工作原理
该插件使用自动运行的三阶段工作流。 无需手动调用每个阶段 - 业务流程协调程序会根据请求处理路由。
阶段 1:评估
- 发现指定路径中的Java应用程序。
- 分析依赖项、框架和Java版本。
- 确定现代化机会和风险。
- 将结果保存到
.github/modernize/assessment/.
阶段 2:规划
- 加载评估结果。
- 生成可执行的任务计划。
- 将计划保存到
.github/modernize/<app>/plan.md和tasks.json.
阶段 3:执行
- 根据任务类型将任务路由到专用执行程序代理。
- 每个执行程序都会查询知识库以获取迁移模式。
- 监控进度,并在失败时自动重试。
- 创建详细的按任务划分的提交,供审阅。
业务流程协调程序支持多个入口点,具体取决于你的意图:
| Workflow | 激活时 | 发生的情况 |
|---|---|---|
| 宽泛意图 | 使我的应用程序现代化 | 完整的评估→规划→执行流程 |
| 特定任务 | “升级到 Java 21” | 跳过评估,直接进入计划→执行阶段 |
| 执行现有计划 | “执行计划” | 跳过评估和规划,运行现有计划 |
| 无头 | 使用 --allow-all 进行无人值守执行 |
与无用户提示时的宽泛意图相同 |
常见场景
升级Java应用程序
若要将Java应用程序升级到较新的运行时或框架版本,请使用以下示例:
copilot --agent=github-copilot-modernization:modernize
upgrade this project to JDK 21 and Spring Boot 3.2
然后执行现代化任务,包括生成升级计划、执行代码修正、生成项目以及检查漏洞,如以下屏幕截图所示:
该项目已成功升级到 JDK 21 和 Spring Boot 3.2,并显示升级摘要。
将Java应用程序迁移到Azure
若要将Java应用程序迁移到 Azure,请描述迁移方案,如以下示例所示。 有关预定义迁移任务的详细信息,请参阅 为Java开发人员GitHub Copilot现代化定义的任务。
copilot --agent=github-copilot-modernization:modernize
migrate this application from S3 to Azure Blob Storage
出现此提示时,迁移任务将执行并在 Copilot CLI 中显示进度。
成功将项目迁移到Microsoft Azure Blob 存储时,将显示迁移摘要。
将Java应用程序部署到Azure
升级或迁移应用程序后,可以使用以下示例直接从 Copilot CLI 部署它:
copilot --agent=github-copilot-modernization:modernize
Scan my project and help me plan how to containerize my application using the #appmod-get-containerization-plan tool. Execute the plan. The end goal is to have Dockerfiles that are able to be built.
通过使用此提示,部署任务在 Copilot CLI 中运行并显示进度。
成功部署项目后,会显示部署摘要。
Troubleshooting
找不到插件
# Verify marketplace is added
copilot plugin marketplace list
# Re-add the marketplace if needed
copilot plugin marketplace add microsoft/github-copilot-modernization
# Reinstall
copilot plugin install github-copilot-modernization@github-copilot-modernization
评估失败:找不到Java应用程序
- 验证
pom.xml或build.gradle存在于项目根目录中。 - 在启动 Copilot CLI 之前,请确保位于正确的目录中。
MCP 服务器问题
该插件使用在其配置中定义的 MCP 服务器。 如果遇到问题,请尝试重新安装插件以重置 MCP 配置。
提供反馈
如果对 GitHub Copilot 现代化插件有任何反馈,在 github-copilot-appmod 存储库上创建问题。