首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

升级JDK时涉及的工作任务

编程知识
2024年08月07日 23:29

JDK版本升级,通常引入新的语言特性、新的API,废弃一些API,从而导致一些不兼容的现象。
因此在升级产品使用的JDK版本时,通常有如下考虑:

  • 新产品包括新建设的项目以及刚启动不久的项目,使用高版本的JDK。
  • 对于生命周期中间的产品,依据人力预算和团队的技能,决策是否升级。
  • 对于进入生命周期尾部的产品,则建议维持现有的JDK版本,不进行升级工作。

升级JDK前,完整梳理涉及的变更项,有助于准确评估升级所需的工作量。
升级JDK时,提前就如下事项,进行评估:
升级JDK版本的目的
明确升级的目的,比如提升开发效率、改善应用运行时的效率、提升团队技能准备度、客户的明确要求等,有助于缩小备选的版本集合,快速做出选型的决策。
就升级目的和收益,和客户、管理团队、研发团队统一认识,达成一致。

开发环境

  • IDE的选型,当前在用的低版本的IDE可能不支持高版本的JDK,因此需要同步更新版本。
  • 构建工具,比如项目当前使用maven来构建产品,部分插件可能依赖JDK的版本,因此需要同步升级。
  • 静态检查工具,低版本的检查工具可能无法识别高版本JDK引入的新语法,因此需要升级或者重新选型。
  • 调试工具,比如内存检查和分析工具、一些Profile的工具,可能需要同步升级或者重新选型。
  • UT用例,比如Mock框架,可能需要同步升级或者重新选型,这涉及到已有UT代码的整改。

构建流水线

  • 流水线软件,比如Jenkins,统一JDK版本,有助于简化环境的配置,同时复用升级JDK带来的红利。
  • 静态检查工具,和开发环境中使用的代码静态工具的版本和规则需要匹配,二者同步升级。
  • 自动化测试用例

产品源码

  • 源码中涉及语言、API的兼容性修改
  • 开源软件,选用兼容高版本JDK的版本,或者重新选型
  • 脚本,比如安装、卸载、启动、停止脚本等

验证工作

  • 功能验证
    • 安装/卸载/运行/停止/升级/回退
    • 业务功能
  • 性能测试
    • 资源消耗,观察CPU、内存
    • 业务表现,比如吞吐量、时延、并发度
    • JVM表现,比如GC次数、GC时延、GC日志
  • 长稳测试

周边配套系统
运营、运维等系统,和产品一起完成整改。

生产变更
提前演练,准备好应对预案。

完成上述梳理,算是好的开始,后续仍需制订执行计划,有序开展工作,跟踪各任务的进度,在预期时间内完成升级的工作,达成升级的目标。

AI的答案

如下是百度生成的答案,质量还不错,文笔、措辞的质量不错。

‌JDK(‌Java Development Kit)的升级是一个涉及多个方面的过程,包括版本选择、依赖更新、代码兼容性检查、测试以及查阅官方文档和社区支持。以下是一些关键的步骤和注意事项:
版本选择

  • 推荐升级到最新稳定版本,如‌JDK 17,以利用最新的性能改进和安全更新。
  • 考虑项目的兼容性和依赖库的支持情况,确保所选版本与项目的需求相匹配。

依赖更新

  • 检查项目依赖的库是否支持新版本的JDK,并更新到兼容的版本。特别注意那些有强制依赖的库,如Zookeeper和Curator,它们可能需要特定版本的JDK才能正常工作。
  • 对于使用Maven或Gradle等构建工具的项目,更新项目的构建配置文件(如pom.xml或build.gradle),指定新的JDK版本。

代码兼容性检查

  • 检查代码中是否有使用已弃用或不再支持的API,并进行相应的修改。
  • 利用IDE的提示功能检查潜在的兼容性问题,并进行修复。

测试

  • 在升级后进行全面的测试,包括单元测试、集成测试和系统测试,确保功能不受影响。
  • 特别注意那些与JDK版本紧密相关的功能模块,如网络编程、并发处理等。

文档和社区支持

  • 查阅JDK官方文档和社区讨论,获取更多关于升级指导和常见问题的解决方案。
  • 利用社区论坛和问答网站(如Stack Overflow)寻求帮助和建议。

通过遵循上述步骤和建议,可以更顺利地完成JDK的升级过程,同时最小化潜在的风险和问题。‌

参考资料

Oracle JDK

OpenJDK

开源软件

网友帖子

From:https://www.cnblogs.com/jackieathome/p/18348133
本文地址: http://shuzixingkong.net/article/893
0评论
提交 加载更多评论
其他文章 Golang在整洁架构基础上实现事务
这篇文章在 go-kratos 官方的 layout 项目的整洁架构基础上,在微服务架构下,实现优雅的数据库事务操作。
Golang在整洁架构基础上实现事务 Golang在整洁架构基础上实现事务 Golang在整洁架构基础上实现事务
使用触发器来审计表的DML、DDL操作
最近帮客户排查某问题时,因为怀疑应用对某张配置表有变更,所以需要对这张表的所有操作进行审计。 原本Oracle对某张表的审计是非常方便的,一条命令就可以实现,也不需要费心自定义审计表。 -- 启用对表DEPT的插入、更新和删除操作的审计 AUDIT INSERT, UPDATE, DELETE ON
使用触发器来审计表的DML、DDL操作
七牛云私有空间图片上传、下载
导航 引言 总体思路 七牛云相关的配置文件 获取七牛云上传token 相关类定义 核心代码实现 获取七牛云图片下载链接 公开空间 私有空间 核心代码实现 结语 参考 引言 我们在成长,代码也要成长。 多媒体图片在各种网站、小程序和app中应用广泛,同时也大大增强了用户体验。 随着云服务的兴起,越来越
七牛云私有空间图片上传、下载 七牛云私有空间图片上传、下载
莽撞闯荡的6周年,也就是弹指一挥间
6年也就是弹指一挥间,时间过得飞快。6年前的明天,也就是2018年的8月8日,我离开了服务12年的腾讯开始探索自己的梦想-参见《回顾4180天在腾讯使用C#的历程,开启新的征途》。到今天,已经整整走过了6年,这6年还是围绕着C# 开展业务和活动。在这个6周年的特殊日子,总感觉要说些什么,但想说的话又
《最新出炉》系列小成篇-Python+Playwright自动化测试-66 - 等待元素至指定状态(出现、移除、显示和隐藏)
1.简介 在我们日常工作中进行UI自动化测试时,保证测试的稳定性至关重要。其中一个关键方面是正确地定位和操作网页中的元素。在网页中,元素可能处于不同的状态,有些可能在页面加载完成之前不在DOM中,需要某些操作后才会出现,而其他元素可能一直存在于DOM中,但最初处于隐藏状态,需要通过操作才能使其出现进
《最新出炉》系列小成篇-Python+Playwright自动化测试-66 - 等待元素至指定状态(出现、移除、显示和隐藏) 《最新出炉》系列小成篇-Python+Playwright自动化测试-66 - 等待元素至指定状态(出现、移除、显示和隐藏) 《最新出炉》系列小成篇-Python+Playwright自动化测试-66 - 等待元素至指定状态(出现、移除、显示和隐藏)
博客园自救之产品开发小建议
继上次 博客园直播方向运营建议之后,我又冒出了一个小建议, 毕竟作为博客园精神股东,开动我脑洞,我也义不容辞责任 博客园的产品形式是博客文章, 拓展路径有两条,一条是 文章的分类,一条的是文章的内容 分类的控制权在博客园,可拓展性强 内容的控制权在文章作者,可获站性弱 所以更多的拓展方向在分类 软件
介绍一款新奇的开源操作系统:GodoOS
在快节奏的现代办公环境中,一款高效、集成化的操作系统无疑是提升工作效率的利器。今天,我们要为您隆重介绍 ——GodoOS,一款专为内网办公环境设计的全能操作系统。它不仅仅是一个工具,更是您团队协作与文件管理的得力助手,将彻底改变您的工作方式,带来前所未有的便捷体验! 【全能办公套件,一应俱全】 Go
介绍一款新奇的开源操作系统:GodoOS
神经网络之卷积篇:详解更多边缘检测内容(More edge detection)
详解更多边缘检测内容 已经见识到用卷积运算实现垂直边缘检测,在本博客中,将看到如何区分正边和负边,这实际就是由亮到暗与由暗到亮的区别,也就是边缘的过渡。还能了解到其他类型的边缘检测以及如何去实现这些算法,而不要总想着去自己编写一个边缘检测程序。 这张6×6的图片,左边较亮,而右边较暗,将它
神经网络之卷积篇:详解更多边缘检测内容(More edge detection) 神经网络之卷积篇:详解更多边缘检测内容(More edge detection) 神经网络之卷积篇:详解更多边缘检测内容(More edge detection)