Jenkins 抛弃 Java 8 拥抱 Java 11
官方文档链接:https://www.jenkins.io/blog/2022/06/28/require-java-11/。
介绍
Jenkins 项目致力于为最终用户和开发人员提供世界级的平台体验。这种体验的核心是 Java,它是一种面向对象的编程语言,具有 Java 虚拟机 (JVM)形式的跨平台运行时。自成立以来,Jenkins 项目一直是 Java 的主要消费者,向超过 300,000 个控制器的安装基础分发了 1,800 多个插件,并且 Jenkins 经常出现在有史以来顶级 Java 应用程序的列表中。
从 Jenkins 2.357(2022 年 6 月 28 日发布)和即将发布的 9 月 LTS 版本开始,Jenkins 需要 Java 11。 此外,从 Jenkins 2.355(2022 年 6 月 14 日发布)和 Jenkins 2.346.1 LTS(6 月 22 日发布, 2022),Jenkins 支持 Java 17。插件已经在 JENKINS-68446 中准备好了。 使用插件管理器在升级到 Jenkins 2.357 之前和之后升级所有插件。
长期使用 Jenkins 的用户和 Java 开发人员可能会回忆起之前迁移到 Java 7 和 Java 8 的过程。虽然这些迁移并非微不足道,但与迁移到 Java 9 及更高版本的规模相比,它们显得苍白无力。Java 9 代表了 Java 生态系统在许多方面发生的巨大变化。不仅许可政策、版本控制方案、发布节奏和长期支持 (LTS) 周期发生了变化,而且语言和运行时也发生了许多重大的技术变化(例如,Project Jigsaw),并非所有这些都保留了以前版本所具有的高度兼容性。尽管从长远来看,这些演进性变化可能符合 Java 社区的最大利益,但社区仍有责任了解其影响并做出相应的计划。
数据
上述数据表明,每个主要 Java 版本的生命周期显然是一个高斯函数。Java 的每个主要版本都由供应商发布,开始一个快速增长的采用阶段,达到使用高峰,失去 Jenkins 项目的支持,开始使用量下降,使用量下降到终端状态,最后到达供应商端生命周期 (EOL),大致按此顺序。
进一步推断,可以观察到以下趋势:
Jenkins 用户至少需要一年时间才能开始采用 Java 的新版本。
一旦 Jenkins 用户开始采用新版本的 Java,之前 Java 版本的使用量最终会达到峰值并开始下降。
Jenkins 项目历来开始需要新的 Java 版本,大约在前一个 Java 版本衰退期的一半。
一旦 Jenkins 需要一个给定的 Java 版本,之前的 Java 版本的使用量就会继续下降,直到达到下降的最终阶段。
上述下降的最终阶段通常与 Java 供应商的积极支持结束有关。
结论
至关重要的是,在前一个版本的使用量明显下降之前,Jenkins 项目从未需要给定版本的 Java。这通过确保大多数用户在生产中成功运行新版本来降低风险。相反,对 Jenkins 用户的新 Java 版本的要求会激励其余用户进行升级,并防止不愿升级的用户继续依赖即将达到供应商生命周期终止 (EOL) 的版本,从而使项目面临风险)。
Java 11 的要求与历史先例一致。Java 8 的使用在 2021 年 2 月达到顶峰,此后一直在下降。同时,自 2019 年 11 月以来,Java 11 的采用率一直在迅速增加,但尚未达到顶峰。现在是需要 Java 11 的时候了。
BUG 挖掘机·性能征服者·头顶锅盖
阅读原文,跳转我的仓库地址
版权声明: 本文为 InfoQ 作者【FunTester】的原创文章。
原文链接:【http://xie.infoq.cn/article/539252580bc3aa50310fb6c96】。文章转载请联系作者。
评论