

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Q 开发者版如何为 Java 语言升级转换代码
<a name="how-CT-works"></a>

为转换您的代码，Amazon Q 开发者版会生成一个转换计划，用于升级项目的代码语言版本。转换代码后，它会提供转换摘要和文件差异信息，以便您在接受更改之前查看更改内容。由于 Amazon Q 开发者版仅会对代码进行“最小必要修改”以确保升级后的代码与目标 JDK 兼容，因此若需升级项目的库和依赖项，还需执行额外的转换操作。以下各部分提供了有关 Amazon Q 如何执行转换的更多详细信息。

## 构建代码并创建转换计划
<a name="build-code-create-plan"></a>

要开始转换您的代码，Amazon Q 会在本地构建您的项目，并生成包含源代码、项目依赖项和构建日志的构建构件。

生成构建构件后，Amazon Q 会在安全的构建环境中构建您的代码，并创建针对您要升级的项目或模块定制的转换计划。转换计划概述了 Amazon Q 将尝试进行的具体更改，包括新的依赖项版本、主要代码更改以及针对已弃用代码的建议替代方案。这些更改基于您的代码的初步构建，并且可能会在转换过程中发生变化。

## 转换您的代码
<a name="transform-code"></a>

在执行代码转换时，Amazon Q 会依据转换计划中的建议变更，尝试将您的代码升级到目标 Java 版本 当它进行更改时，它会重新构建并运行源代码中的现有单元测试，以迭代方式修复遇到的任何错误。目前支持以下源代码版本到目标版本的 JDK 升级：
+ Java 8 到 17
+ Java 8 到 21
+ Java 11 到 17
+ Java 11 到 21
+ Java 17 到 21

为确保代码与目标 Java 版本兼容，Amazon Q 仅会进行“最小必要修改”。Amazon Q 完成最低版本 JDK 升级后，您可启动单独的转换作业以升级所有第三方依赖项；或者，也可在 YAML 文件中指定第三方依赖项及其版本，仅在库升级转换过程中升级这些指定的依赖项。

Amazon Q 在升级您的代码时会尝试进行以下更改：
+ 根据目标 Java 版本的官方建议，更新已废弃的代码组件
+ 将常用库和框架升级到与目标 Java 版本兼容的版本。这包括将以下库和框架更新到其最新可用的主要版本：
  + Apache Commons IO 
  + Apache HttpClient 
  + bc-fips 
  + Cucumber-JVM 
  + Hibernate 
  + jackson-annotations 
  + JakartaEE
  + Javax 
  + javax.servlet 
  + jaxb-api 
  + jaxb-impl 
  + jaxen 
  + jcl-over-slf4j 
  + json-simple 
  + jsr305 
  + junit 
  + junit-jupiter-api 
  + Log4j 
  + Micronaut 
  + Mockito 
  + mockito-core 
  + Okio 
  + PowerMockito 
  + Quarkus 
  + slf4j 
  + slf4j-api 
  + Spring Boot 
  + Spring Framework 
  + Spring Security 
  + Swagger 
  + testng 

**注意**  
代码转换过程中，请勿关闭本地计算机，因为客户端构建需要稳定的网络连接。

## 在本地环境中构建代码
<a name="java-local-builds"></a>

代码转换过程中，Amazon Q 会在您的本地环境中执行验证构建。Amazon Q 在服务端通过多步操作对代码进行转换。每完成一步转换，Amazon Q 会将代码发送到您的本地环境，对已做的变更进行构建和测试。测试完成后，代码会被送回服务端，继续下一步转换。

在本地环境中执行构建操作能让 Amazon Q 运行需要访问私有资源的测试，从而帮助验证转换后的代码。为降低在本地环境中构建 AI 生成代码的安全风险，Amazon Q 会审查并更新其生成的代码，以解决潜在的安全问题。

## 查看转换摘要并接受更改
<a name="review-plan-accept-changes"></a>

转换完成后，Amazon Q 会提供一份转换摘要，其中包含有关其所做更改的详细信息，包括最终构建的状态，该状态表明您的整个项目是否已升级。您还可以查看构建日志摘要，以了解阻碍 Amazon Q 在升级版本中构建代码的任何问题。

转换摘要还包括转换计划中提议的更改与 Amazon Q 最终为升级您的代码所做的更改之间的差异，以及原始计划中未包含的任何其他更改。

查看转换摘要后，您可以在文件差异视图中查看 Amazon Q 提议的更改。在您接受更改之前，Amazon Q 建议的任何代码更改都不会影响您当前的项目文件。转换后的代码在转换完成后的最多 30 天内可用。

## 完成部分成功的转换
<a name="partially-successful-transformations"></a>

根据代码库的复杂性和具体情况，在某些情况下，转换可能会部分成功。这意味着 Amazon Q 只能转换项目中的某些文件或代码区域。在这种情况下，您必须手动更新剩余的代码，这样您的项目才能使用更新的语言版本进行构建。

为了帮助转换代码的其余部分，您可以在 IDE 中使用 Amazon Q 聊天功能。您可以让 Amazon Q 查看部分更新的文件，并提供新的代码来解决诸如编译错误之类的问题。您还可以使用[功能开发和 [Workspace 上下文](workspace-context.md)等功能](q-in-IDE-chat.md#develop-code)将更多项目内容作为上下文包含在内，并一次获取有关多个文件的建议。