通过


GitHub Copilot 现代化常见问题解答

解答有关 GitHub Copilot 现代化问题的常见问题。

FAQ

GitHub Copilot 现代化的产品范围是什么?

我们认识到,迁移过程始终错综复杂,并且应用生态系统中的各个层次相互交织。 目前,我们将迁移范围限制为 Java 后端应用。 我们支持使用 Maven 或 Gradle 生成的项目。 有关关键产品功能的信息,请参阅 GitHub Copilot 现代化概述

GitHub Copilot 现代化将来是否会开放源代码?

我们目前没有开放源代码 GitHub Copilot 现代化计划。

我需要哪种 GitHub Copilot 许可证计划才能使用 GitHub Copilot 的现代化功能?

GitHub Copilot 现代化可供任何 GitHub Copilot 计划使用。

GitHub Copilot 现代化如何计费?

GitHub Copilot 现代化是 GitHub Copilot 的一项功能,与 GitHub Copilot 共享相同的 订阅计费模型 。 GitHub Copilot 的现代化任务会消耗高级请求,每个订阅计划每月附带一定数量的高级请求。 超出套餐限额需要升级套餐或额外购买高级请求。

除了 Java,我还需要迁移用其他语言编写的应用。 GitHub Copilot 现代化是否有超越 Java 的计划?

目前,GitHub Copilot 现代化侧重于帮助 Java 和 .NET 应用程序。 但是,我们正积极收集客户关于需要支持其他语言的要求和反馈。

GitHub Copilot 现代化是否存储我的源代码?

No. GitHub Copilot 现代化使用 GitHub Copilot 的过程与使用它修改代码的方式相同,代码片段不会在当前会话之外被保留。 我们不会收集、传输或存储自定义技能。

收集并分析遥测指标,以跟踪功能使用情况和有效性。

有关详细信息,请参阅 Microsoft隐私声明

你使用哪种类型的应用程序来评估 GitHub Copilot 现代化?

我们在数百个开源存储库上测试了 GitHub Copilot 现代化,以确保在现代化过程后构建、一致性和单元测试全都通过。 我们还在 Technical Preview 阶段与客户进行了广泛的合作。 用户输入用于改善产品体验。 可以使用 此链接提交反馈。

GitHub Copilot 的现代化在升级场景中优化了哪些框架?

尽管 GitHub Copilot 现代化侧重于升级 Java 运行时,但它还优化了以下框架的升级:

  • Spring Boot 支持到版本 3.5。
  • Java EE - 从 Javax 到 Jakarta EE,直至 Jakarta EE 10。
  • 旧版 Spring Framework 最高版本 6.2+。
  • JUnit.
  • 各种第三方依赖项。

有关详细信息,请参阅 自定义 Java 项目升级计划

可以升级的 Java 版本有哪些?

我们目前支持以下 Java 开发工具包(JDK)版本:

  • JDK 8
  • JDK 11
  • JDK 17
  • JDK 21
  • JDK 25

项目所需的最低 JDK 版本为 JDK 8,你可以升级项目以使用任何最高 JDK 21 版本。

支持哪些类型的 Java 项目?

目前,仅支持以下项目类型:

  • Maven 项目(包括 Maven 包装器)
  • Gradle 项目(仅限 Gradle 包装器,版本 5+)

不支持基于 Kotlin DSL 的 Gradle 项目。

Java 升级的限制是什么?

目前,该扩展具有以下功能限制:

  • 该扩展仅支持 Java 升级,不满足其他编程语言的需求。
  • 它仅适用于使用 Maven 和 Gradle 生成的 Java 项目。
  • 仅支持 Git 存储库。 其他版本控制系统不兼容。
  • 扩展无法保证建议的更改是最佳或被认为是最佳做法。

建议对此工具使用以下最佳做法:

  • 仅在满足前面所述的指定特征的项目上运行扩展。
  • 在将扩展输出合并到生产分支之前,请完成彻底的代码评审。
  • 运行所有测试,并根据需要完成与更改管理过程关联的常规 QA 检查。

如何同时实现多个应用的现代化,以及如何为大量应用缩放应用模式体验?

可以使用 AppCAT CLI 并通过 -bulk 标志同时扫描多个项目。 但是,我们建议一次只现代化一个项目或应用。 可以根据一个项目的代码更改创建自己的迁移任务,并将其应用到其他项目,从而减少重复工作。

我应使用哪个模型?

一般来说,较新的模型往往优于以前的模型。 对于编码任务,我们推荐 Claud Sonnet 模型,因为它们具有更好的准确性。 但是,若要降低成本,请考虑从乘 数较低的模型开始探索。

如何更改 AppModernization 自定义代理使用的模型?

在 Visual Studio Code 中,GitHub Copilot 升级默认使用 Claude Sonnet 4.5 的 AppModernization 自定义代理,以实现 Java 代码迁移到 Azure 时的最佳结果。 如果 Sonnet 4.5 不可用,它将切换到“自动”模型。 通过从代理菜单中选择配置自定义代理,可以配置自定义代理以修改“模型”设置。 或者,可以使用聊天窗口中的语言模型选取器来切换当前聊天会话的模型。

Visual Studio Code 中 GitHub Copilot 聊天窗格的屏幕截图,其中显示了“配置自定义代理”选项。

故障排除指南

顶级模型的令牌大小限制是什么?

有关详细的模型规范,请参阅 GitHub Copilot 文档

Java 运行时和框架升级的作要求是什么?

若要确保 Java 运行时和框架升级成功,需要以下信息:

  • 项目类型。 该项目必须是使用 Maven 或 Gradle 构建的基于 Git 的 Java 项目。
  • 目标 Java 版本 - 要升级到的 JDK 版本 - 例如 Java 21。
  • 源和目标 JDK 路径 - 当前和目标版本的已安装 JDK 的路径。
  • Maven/Gradle 设置 - Maven/Gradle 生成工具的路径。 对于 Gradle,仅支持 Gradle 包装器。

GitHub Copilot 现代化如何使用 MCP 服务器,以及如何检查更新或解决问题?

GitHub Copilot 现代化使用 MCP 服务器来增强代码转换功能。 安装 Visual Studio Code 扩展后,MCP 服务器会自动注册并启动。

如果注意到 GitHub Copilot 聊天面板右下角的特殊刷新按钮,则可能表示工具更新可用。 选择该按钮可自动加载最新版本的工具。

GitHub Copilot 现代化 MCP 服务器还维护日志。 若要进行故障排除,请检查位于以下位置的日志文件: %USERPROFILE%/.ghcp-appmod-java/logs

为什么 GitHub Copilot 现代化在列出计划后停止,而不进行任何代码更改?

有时,在继续之前,GitHub Copilot 的现代化过程需要明确确认。 可以在聊天中键入 “是 ”或 “继续 ”,使代理能够继续修改代码。

Visual Studio Code 中 GitHub Copilot 聊天窗格的屏幕截图,显示用户键入“继续”以响应更新计划。

为什么 GitHub Copilot 现代化经常提示我选择“继续”?

为了确保更安全的作,GitHub Copilot 代理反复要求用户确认,可以使用以下配置作为解决方法。

  • 对于 Visual Studio Code,可以选择“ 继续 ”按钮旁边的下拉箭头,然后选择 “始终允许”,或更新 Visual Studio Code 设置 chat.tools.autoApprovetrue 自动批准所有工具。 我们还建议配置 chat.agent.maxRequests128,以减少需要确认才能继续的步骤数量。

    GitHub Copilot 聊天窗格的屏幕截图,其中显示了“继续”按钮和带有“允许”选项的下拉菜单。

  • 对于 Intellij IDEA,可以选择“ 继续 ”按钮,或更新设置,选择 “工具>GitHub Copilot 配置”窗口,然后选择“ 自动批准”。 我们还建议启用信任 MCP 工具注释,并将最大请求增加到99

    GitHub Copilot 聊天窗格的屏幕截图,其中显示了 Intellij IDEA 中的“继续”按钮。

在 Visual Studio Code 中使用 GitHub Copilot 现代化需要哪些网络配置?

为了确保扩展在 Visual Studio Code 中正常工作,网络连接必须稳定,并允许访问 GitHub Copilot 服务。 在受限的环境中,可能需要相应地配置代理或防火墙规则。 如果在聊天窗口中遇到类似“语言模型不可用”的错误,请参阅管理 GitHub Copilot 访问企业网络的正式故障排除指南。

GitHub Copilot 中是否有任何设置,应进行配置以确保获得所有功能?

GitHub Copilot 可能会阻止通常类似于公共代码的文件的某些代码代系,例如 pom.xml。 若要防止 Copilot 阻止这些更改,必须允许与公共代码匹配的建议。 有关说明,请参阅 “启用或禁用与公共代码匹配的建议”。

若要管理组织中 GitHub Copilot 的设置,请参阅 在组织中启用 Copilot 功能

为什么在 GitHub Copilot 现代化中没有看到使用模型上下文协议 (MCP) 服务器的工具?

GitHub Copilot 的现代化使用 MCP 服务器以提供专用的迁移功能。 选择 “刷新”时,它会与此服务器建立连接,并更新聊天代理中的可用工具。 此动作仅在以下情况才是必需的:

  • 首次打开 Java 项目进行迁移时。
  • 将扩展升级到较新版本时。

为什么代码重新生成过程不稳定?

GitHub Copilot 现代化由 AI 提供支持,因此可能会出现偶尔的错误。 请在使用前仔细查看输出。 还可以重试重新生成过程以查看备用代码建议。

技能存储在本地计算机的什么地方?如何共享这些技能?

预定义的任务位于以下位置: %USERPROFILE%.vscode\extensions\microsoft.migrate-java-to-azure-0.1.0\rag

自定义技能存储在项目中的 .github/skills/ 目录中。 旧自定义任务会在首次加载时自动从 .github/appmod/custom-tasks/ 和 VS Code 用户数据中迁移。

如何查看代理所做代码更改的更多详细信息?

代理始终在聊天窗口中包括其对代码修改的解释。 但是,这些详细信息可能会在用户界面中折叠。 可以在聊天中展开响应,查看完整理由和分步推理。

是否可以在 Linux 平台上的 IntelliJ IDEA 中使用 GitHub Copilot 现代化功能?

我们目前仅支持 Windows 和 macOS 平台。