借助大语言模型快速升级你的 Java 应用程序

Java
IDE
大语言模型
Amazon Q
0
0
大家都知道我爱小 Q。在我“转码”的征程中,它就像上帝之手,在我本该枯燥漫长的学习进程中拉满快进条。 不仅是我,最近 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) Developer 还帮助 Amazon 一个由 5 人组成的团队在短短两天内将 1,000 多个生产应用程序从 Java 8 升级到 Java 17(每个应用程序的平均时间不到 10 分钟)。它就像一个超级英雄,帮助这个团队节省了数月的时间, 以及大量的维护、升级和迁移工作。 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) Developer 在升级的过程中不仅智能地升级语言版本,还能识别并替换那些被淘汰的代码,更棒的是,它还能确保新的应用程序是安全的。听起来是不是感觉有点酷?让我们一起来看看它是如何实现的吧! ### **什么是 Amazon Q Developer?** [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) Develper 是 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 的开发者版本,从编码、测试和升级应用程序,到诊断错误、执行安全扫描和修复,以及优化 Amazon 云上资源,可协助开发人员和 IT 专业人员完成所有任务。这篇文章所讨论的执行 Java 版本升级是它的一个非常实用的功能:[Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) Code Transformation。 ### **为什么选择 Amazon Q Code Transformation?** * **节省时间**:手动升级可能需要几天甚至几周的时间,而使用 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) Code Transformation 只需几分钟。 * **自动化**:自动生成转换计划,完成代码转换任务。 * **高效**:识别和更新软件包依赖关系,重构已过时的代码组件,切换到新的语言框架,并纳入安全最佳实践。 * **安全性**:通过升级到最新版本,消除使用不受支持版本所带来的漏洞,提高应用程序的安全性和性能。 ### **Amazon Q Code Transformation 的技术实现** #### **Amazon Q  Developer 完成代码创建,并制定升级计划** [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) Code Transformation plugin 把源代码上传给 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail), 并在接下来的 24 小时内暂时存放在 [Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail) bucket。[Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 会在本地创建包含**源代码**、**项目依赖项**和**升级日志**的升级项目。 生成项目后,[Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 在安全的构建环境中生成升级代码,并创建针对要升级的项目或模块定制的升级计划。升级计划具体了 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 将尝试进行的更改,包括新的依赖项版本、主要代码更改以及对已弃用代码的建议替代方案。这些更改基于源代码,并且会在转换过程中发生变化。 #### **Amazon Q  Developer 完成代码转换** 为了成功地完成升级任务,[Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 会按照指定好的升级计划来做代码转换。当进行代码更改时,根据情况生成并运行新的单元测试,或者直接运行源代码中已有的单元测试进行验证,并以**迭代的方式**修复升级过程中遇到的任何错误。 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 在升级代码时会尝试进行以下更改: * 将常用库和框架升级到与新的 Java 版本兼容的版本。这包括将 Spring、Spring Boot、Junit、Jakartaee、Mockito、Hibernate 和 Log4j 更新到最新可用的主要版本。 * 根据建议更新已弃用的代码组件。 #### **开发者查看升级摘要并接受更改** 升级完成后,[Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 会提供升级摘要,其中包含所做更改的详细信息,包括: **最终版本的状态**,该状态表明整个项目是否已升级。开发者还可以查看日志摘要,了解 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 在升级过程中遇到和修复的任何问题。 升级摘要还包括升级计划中提出的更改与 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 最终所做更改之间的**差异**,以及原始计划中未包含的任何其他更改。 升级完成后,开发者浏览更改摘要,选择接受并提交新代码到代码库。在开发者确认更改之前,[Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 所做的任何代码更改建议都不会影响当前的项目文件。升级后的代码在升级完成后 24 小时内都可用。 升级过程可参看下图。 ![image.png](https://dev-media.amazoncloud.cn/79ed8e6a5b854e34afe8c8b3924818c5_image.png "image.png") ***作者体验**:在一次社区活动中,一位运维工程师找到我,和我确认 JDK 版本升级中,升级计划的创建,升级过程中的测试和错误修复真的都不需要人工干预吗?因为这曾经消耗了他们很多的时间和精力。当他通过一个实验验证了答案后,他无比开心。他说,他真正感受到了人工智能正在帮助他减轻工作压力,简化工作流程。* ### **如何开始?** #### **步骤 1:先决条件** 在开始之前,请确保以下条件都已满足: * 项目基于 Maven 构建的要升级的 Java 项目,(核查 Java 版本支持的更新)。 * 在 IDE 中使用 Maven 成功构建项目。 * 项目源 JDK 在本地可用,并且是源代码的版本。 * 项目配置正确,指定了正确的 JDK 版本。 * 项目不使用非 Java 的插件。 #### **步骤 2:在 IDE 中安装 Amazon Q Developer 并配置你的项目** * **在 IDE 中安装 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) Developer** * 在集成开发环境(IDE)中通过 Amazon Web Services tools 安装 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) Developer,并通过 Amazon IAM 或 Builder ID 进行身份验证。使用 Builder ID 认证登录,无需拥有 Amazon Web Services 账户,即可免费使用 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) Developer。 * **在 IDE 中配置项目** 1\)确保项目根文件夹中包含 `pom.xml` 文件。 2\)如果项目包含 Maven 包装器可执行文件(如 `mvnw` 或 `mvnw.cmd`),确保它位于项目的根目录。 #### **步骤 3:代码转换,升级 Java 应用程序版本** 有了完全的准备,这个过程就太简单了,如同大象装进冰箱只需要三步一样。 **具体的步骤:** 1. 确保你的 Java 应用程序成功构建 2. 选择本地要升级的 JDK,然后在 IDE 中复制并粘贴输出中的路径。 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) Developer 开始转换,整个过程可能需要几十分钟,无需干预。 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) code transformation 将执行以下任务顺序: \-在本地构建项目 \-上传项目 \-在安全的环境中构建项目 \-分析代码并制定转换计划 \-将代码更新到新的 JDK 版本、依赖项和相关代码 \-使用新的 JDK 版本构建项目 \-升级已弃用的代码 \-完成代码更改和转换摘要,一个包含详细转换信息的 summary.md 文件 \-将其提供给你下载 3. 下载项目后,查看摘要和所有的变更后确认并将这些更改提交到你的代码存储库。 可查看的变更包括但不限于: •查看差异:选择“View diff”来查看建议的更改。在“Apply Patch”对话框中,你可以并排查看项目中的当前代码和建议的更改。例如,你可能会看到某些依赖项的版本已更新,以便与目标 Java 版本兼容。 • 查看详细更改:例如,在 pom.xml 文件中,你可能会看到某个依赖项(如 Project Lombok)的版本已增加。在 Java 文件中,升级后的依赖项使用的注释也可能已更新。 • 代码重构:在新版本中,某些注释或方法可能已经过时或被弃用。 恭喜你!你已经学会如何使用 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) Code Transformation 完成了你的 Java 升级。升级后的项目不仅更新了依赖项和代码,还纳入了最新的安全最佳实践和性能优化。 **立即尝试升级你的 Java 应用程序吧!** ### **更多资源** 升级过程中出现的任何问题,都可以问小 Q,当然,也有文档帮助你解决具体的问题: 博客: * [使用 Amazon Q 代码转换升级您的 Java 应用程序](https://aws.amazon.com/cn/blogs/china/upgrade-your-java-applications-with-amazon-q-code-transformation-preview/?trk=cndc-detail) 文档: * [AWS Toolkit for IntelliJ IDEA](https://aws.amazon.com/intellij/?trk=cndc-detail) * [AWS Toolkit for Visual Studio Code](https://aws.amazon.com/vscode/?trk=cndc-detail) * [Amazon Q Developer 手册](https://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/q-language-ide-support.html?trk=cndc-detail) 小视频: * [Amazon Q 小课堂](http://mp.weixin.qq.com/s?\\__biz=Mzg5Mzg1NDc2NQ==\\&mid=2247494006\\&idx=1\\&sn=4a25fd3293fcadf72e4fbf0bb32298c4\\&chksm=c02adc34f75d5522e77cb81950de6cacbc7d78e45f3169f6aa935574bd40a950381539c506bf\\&scene=21#wechat_redirect)
0
目录
关闭