Java 之父 James Gosling 先前称,开发者应尽快弃用 JDK 8,可以选择 JDK 17 LTS,因为后者在各个方面都带来了巨大的改进。

无语!Jenkins 也宣布弃用 Java 8_Java

开源 Devops 工具 Jenkins 宣布:从 6 月 28 日发布的 Jenkins 2.357 和即将发布的 9 月 LTS 版本开始,Jenkins 最低需要 Java 11。

无语!Jenkins 也宣布弃用 Java 8_Java_02

Jenkins 最初称为 Hudson ,是一款老牌持续集成工具,至今已创立十多年。自 2005 年成立以来,Jenkins 项目经历了多次 Java 迁移。目前从 Java 8 到 Java 11 的迁  移与 Jenkins 项目中的迁移历史是一致的。

无语!Jenkins 也宣布弃用 Java 8_开发者_03

开发者 Basil Crow 在博客中解释称:Jenkins 项目在短期内可能会保留在 Java 8 上,但出于几个原因,这样做是弊大于利。首先,Jenkins 项目使用的许多关键第三方库(例如,Jetty、JGit、Spring Framework 和 Spring Security)开始需要更新版本的 Java,而停留在 Java 8 上会使 Jenkins 项目无法从上游项目接收安全更新。

此外,新版本 Java 对 Java 平台进行了显着的运行时改进。例如,LinkedIn 在迁移到 Java 11 时看到了显着的性能改进,而 Adoptium 在迁移到 Java 11 时看到了显着的内存使用改进(在 Jenkins 上同样如此),而最近的 Java 运行时则提供了许多对垃圾收集的改进。

最后,保持 Java 的当前版本有助于 Jenkins  吸引和留住开发人员。

目前,官方的 Jenkins Docker 镜像 已经基于 Java 11 好几个月了,Java 8 暂时还可作为备选,Java 17 可在预览模式下使用。但是从 Jenkins 2.357 开始,Java 8 映像就将被淘汰,Java 17 映像从预览版过渡到一般可用性 (GA)。

事实上 Jenkins 团队更推荐用户使用 Java 17 :

Jenkins 对 Java 17 的支持是全新的,不过它还没有达到在 Jenkins 社区内普遍采用的阶段。尽管如此, 我们的经验是 Java 17 是比 Java 11 更可靠的选择我们可以自信地说,从 Java 11 迁移到 Java 17 不会像从 Java 8 迁移到 Java 11 那样痛苦。

相关链接:​https://www.jenkins.io/blog/2022/06/28/require-java-11/​

出品 | OSC开源社区(ID:oschina2013)



好书推荐


《Java核心技术》第 12 版根据 最新的 LTR 版本 Java 17 全面更新,涵盖了 Java8-17 全部版本的特性,相应调整了部分内容结构,同时延续之前版本的优良传统,利用清晰明了的示例加以解释,并提供了全部示例代码,以便读者学习和灵活应用。它将续写从前的辉煌,使开发者能及时跟上 Java 前进的步伐。