本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon Q 开发人员升级 Java 版本
Amazon Q 开发者可以在集成开发环境 (IDE) 中将您的 Java 应用程序升级到较新的语言版本。Amazon Q 可以对您的代码进行升级的更改包括更新已弃用的代码组件, APIs 以及升级代码中的库、框架和其他依赖项。
要转换您的代码,Amazon Q 首先使用源语言版本构建您的代码,并验证它是否包含执行转换所需的信息。Amazon Q 成功转换您的代码后,您需要在 IDE 中验证并接受更改。由于 Amazon Q Developer 只需进行最少的更改即可使升级后的代码与目标 JDK 兼容,因此需要进行额外的转换才能升级项目的库和依赖项。有关 Amazon Q 如何转换您的代码的更多信息,请参阅Amazon Q 开发者如何为 Java 语言升级转换代码。
支持的 Java 升级和 IDEs
Amazon Q 目前支持以下 Java 源代码版本和转换目标版本。将代码转换为相同 Java 版本包括升级源代码版本中的库和其他依赖项。
源代码版本 | 支持的目标版本 |
---|---|
Java 8 | Java 17 和 Java 21 |
Java 11 | Java 17 和 Java 21 |
Java 17 | Java 17 和 Java 21 |
Java 21 |
Java21 |
Amazon Q 支持以下方面的 Java 升级 IDEs:
-
中的模块 JetBrains IDEs
-
中的项目和工作空间 Visual Studio Code
步骤 1:先决条件
继续之前,请确保您已完成在 IDE 中设置 Amazon Q 中的步骤。
在开始代码转换任务之前,确保您满足以下先决条件:
-
您的项目是用支持的Java版本编写的,并且是在此基础上构建的Maven。
-
您的项目已成功使用您的 IDE Maven 进行构建。 Maven目前支持 3.8 或更高版本。
-
您的项目源 JDK 在本地可用,并且是源代码的版本。例如,如果您正在转换 Java 8 代码,则您的本地 JDK 安装应该是 JDK 8。
-
您的项目将在 55 分钟或更短的时间内完成构建。
-
您的项目配置正确,并且指定了正确的 JDK 版本。有关更多信息,请参阅步骤 2:配置您的项目。
-
您的项目不需要访问您私有网络中的资源,包括虚拟私有云(VPC)或本地网络。例如,如果您的项目包含连接到网络中数据库的单元测试,则转换将失败。
-
您的项目没有使用在 Java 项目中打包除 Java 以外语言的插件。例如,如果您的项目除了 Java 源 JavaScript 代码之外还使用执行前端代码,则转换将失败。frontend-maven-plugin
-
您的本地网络允许上传到 Amazon Q 用来转换您的代码的 Amazon S3 存储桶。有关更多信息,请参阅允许访问数据边界中的 Amazon S3 存储桶。
步骤 2:配置您的项目
要配置您的项目,请使用您正在使用的 IDE 的以下信息。
在 JetBrains 中配置项目
要在 JetBrains 中配置项目,您可能需要指定以下项目和模块设置。
如果您的模块使用与项目相同的 JDK 和语言级别,则无需更新模块设置。
-
项目 SDK:用于编译项目的 JDK。
-
项目语言级别:项目中使用的 Java 版本。
-
模块 SDK:用于编译模块的 JDK。
-
模块语言级别:您的模块中使用的 Java 版本。
-
Maven Runner JRE:用来构建模块的 JDK。
更新项目和模块设置
要更新项目或模块的 SDK 和语言级别设置,请完成以下步骤:
-
在 JetBrains IDE 中,选择 File,然后选择 Project Structure。
-
此时会打开“Project Structure”窗口。在 Project Settings 下,选择 Project。
-
要更新您的项目 JDK,请从 SDK 旁边的下拉列表中进行选择。
-
要更新项目语言,请从 Language level 旁边的下拉列表中进行选择。
-
-
在 Project Settings 下,选择 Modules。
-
要更新您的模块 JDK,请从 SDK 旁边的下拉列表中进行选择。
-
要更新模块语言,请从 Language level 旁边的下拉列表中进行选择。
-
有关更多信息,请参阅 JetBrains 文档中的 Project structure settings
更新 Maven 设置
要更新 Maven Runner JRE,请完成以下步骤:
-
在 JetBrains IDE 中,选择齿轮图标,然后在出现的菜单中选择 Settings。
-
在 Settings 窗口中,依次选择 Build, Execution, Deployment、Build Tools、Maven 以及 Runner。
-
在 JRE 字段中,选择用于构建要转换的模块的 JDK。
在 VS Code 中配置项目
要在 VS Code 中配置项目,您的项目必须包含以下内容:
-
项目根文件夹中的
pom.xml
文件 -
项目目录中的
.java
文件
如果您的项目包含 Maven 包装器可执行文件(适用于 macOS 的 mvnw
或适用于 Windows 的 mvnw.cmd
),请确保它位于项目的根目录中。Amazon Q 将使用包装器,无需进行其他 Maven 配置。
如果您不使用 Maven 包装器,请安装 Maven。有关更多信息,请参阅 Apache Maven 文档中的 Installing Apache
Maven
安装 Maven 后,将其添加到您的 PATH
变量中。有关更多信息,请参阅 如何将 Maven 添加到我的 PATH?您的 Java runtime
变量还应指向 JDK 而不是 JRE。要确认您的配置是否正确,请运行 mvn -v
。输出应显示您的 Maven 版本和指向 JDK 路径的 runtime
变量。
步骤 3:创建依赖项升级文件(可选)
您可以向 Amazon Q 提供依赖项升级文件,这是一个 YAML 文件,其中列出了项目的依赖项以及转换期间要升级到的版本。通过提供依赖项升级文件,您可以指定 Amazon Q 可能不知道要升级的第三方和第一方依赖项。
第一方依赖关系是指您的组织维护的库、插件和框架,这些库、插件和框架仅在本地或组织的专用网络上可用。当 Amazon Q 在您的本地环境中执行构建时,它可以访问您的第一方依赖项。有关更多信息,请参阅 在本地环境中构建代码。第三方依赖关系是公开可用的依赖关系或开源依赖关系,这些依赖关系不是您的组织所独有的。
您可以在 YAML 文件中指定要升级的第一方依赖项,Amazon Q 会在 JDK 升级期间对其进行升级(例如,Java 8 到 17)。在初始 JDK 升级之后,您可以启动单独的转换(17 到 17 或 21 到 21),以升级第三方依赖关系。
Amazon Q 执行最低限度 JDK 升级后,您可以启动单独的转换以升级所有第三方依赖项。或者,您可以在 YAML 文件中指定第三方依赖项及其版本,以便仅在库升级转换期间升级这些依赖关系。
在转换期间,Amazon Q 将提示您提供依赖项升级文件。如果要提供一个,请先确保已正确配置该文件。YAML 文件中必须填写以下字段:
-
name-依赖关系升级文件的名称。
-
description(可选)-依赖关系升级文件以及针对哪个转换的描述。
-
依赖管理-包含要升级的依赖项和插件的列表。
-
依赖关系-包含要升级的库的名称和版本。
-
plugins-包含要升级的插件的名称和版本。
-
标识符-库、插件或其他依赖项的名称。
-
targetVersion-要升级到的依赖项的版本。
-
VersionProperty(可选)-您正在定义的依赖项的版本,使用应用程序
pom.xml
文件中的properties
标签进行设置。 -
OriginType-依赖关系是第一方还是第三方,由 FIRST_PARTY 或 THIRD_PARTY 指定。
以下是依赖关系升级 YAML 文件以及 Amazon Q 解析所需的配置的示例:
name: dependency-upgrade description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21" dependencyManagement: dependencies: - identifier: "com.example:library1" targetVersion: "2.1.0" versionProperty: "library1.version" # Optional originType: "FIRST_PARTY" - identifier: "com.example:library2" targetVersion: "3.0.0" originType: "THIRD_PARTY" plugins: - identifier: "com.example.plugin" targetVersion: "1.2.0" versionProperty: "plugin.version" # Optional originType: "THIRD_PARTY"
第 4 步:转换您的代码
在转换自己的代码之前,您可能需要通过转换示例项目来测试 IDE 的设置是否正确。以下是符合代码转换条件的示例 GitHub 项目:https://github.com/aws-samples/aws-appconfig-java-sample
要测试 IDE 设置,请下载并解压缩示例项目,然后为 IDE 完成以下步骤。如果您能够查看提议的更改和转换摘要,您就可以转换自己的代码项目。如果转换失败,则说明您的 IDE 配置不正确。要解决配置问题,请查看步骤 2:配置您的项目和故障排除。
注意
在代码转换期间,请勿关闭、关闭本地计算机或使其进入睡眠状态。初始版本和验证版本使用客户端环境,该环境需要稳定的网络连接。
要升级您的代码项目或模块的代码语言版本,请完成以下步骤。