官方文檔鏈接: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),大致按此順序。
Java 6 | Java 7 | Java 8 | Java 11 | |
---|---|---|---|---|
發佈日期 2006 年 12 月 11 日 | 2011 年 7 月 7 日 | 2014 年 3 月 18 日 | 2018 年 9 月 25 日 | |
快速使用量 | 2009 年 10 月(11,193 次安裝) | 2013 年 2 月(10,997 次安裝) | 2015 年 2 月(12,210 次安裝) | 2019 年 11 月(10,094 次安裝) |
峯值使用量 | 2013 年 3 月(47,244 次安裝) | 2015 年 6 月(68,681 次安裝) | 2021 年 2 月(261,468 次安裝) | 不適用 |
Jenkins 要求下一個主版本 | 2015 年 5 月(21,798 次安裝) | 2017 年 4 月(40,569 次安裝) | 2022 年 6 月(185,286 次安裝) | 不適用 |
終端使用量下降 | 2016 年 5 月(10,283 次安裝) | 2019 年 3 月(10,123 次安裝) | 不適用 | 不適用 |
生命週期結束 (EOL) | 2015 年 12 月 31 日 | 2019 年 7 月 31 日 | 至少 2026 年 11 月 | 至少 2024 年 10 月 |
進一步推斷,可以觀察到以下趨勢:
- 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挖掘機·性能征服者·頭頂鍋蓋
- 性能測試專題
- Java、Groovy、Go、Python
- 單測&白盒
- FunTester社羣風采
- 測試理論雞湯
- 接口功能測試專題
- FunTester視頻專題
- 案例分享:方案、BUG、爬蟲
- UI自動化專題
- 測試工具專題
閱讀原文,跳轉我的倉庫地址