由KohsukeKawaguchi打造的Jenkins(最初被稱作Hudson)Devops工具,轉眼已經過去瞭十個年頭。在Oracle/Sun收購引發的分叉之前,用Java編寫的該平臺在持續集成和交付領域相當受歡迎。最新消息是,Jenkins項目組剛剛表示,本周的2.357和即將於9月到來的LTS版本,都將需要在Java11的基礎上運行。
截圖(來自:Jetkins.io)
雖然 Jenkins LTS 核心支持 Java 11 已有一段時間,但作為一個“長期支持版本”(LTS),Java 11 本身已可追溯到 2018 年。
此外作為向 2014 年發佈的 Java 8 告別的一部分(供應商將持續支持到 2030 年),六月 LTS 也已經支持 Java 17(Java SE 的最新 LTS)。
Jenkins 團隊指出,雖然項目會在可預見的一段時間內保留在 Java 8 上,但這麼做將是不夠嚴謹的。
畢竟 Jenkins 使用的多個第三方庫,都依賴於更高的 Java 版本,因而堅持使用 Java 8 會導致上遊項目的更新變得更少。
問題在於,從 Java 8 / 9 向更高版本的轉變,同時也會給諸多開發者帶來各式各樣的挑戰 —— 無論是語言 / 運行時等方面的技術支持、還是法律層面的許可政策問題。
痛定思痛之後,Jenkins 最終還是在 2018 年開啟瞭對 Java 11 的支持工作,並隨著本周的發佈而正式提出瞭這一要求。
另外 Jenkins 也將帶來對 Java 17 的全新支持,隻是目前尚未抵達可向社區快速推廣開來的階段。
好消息是,未來從 Java 11 向 Java 17 遷移的過程,肯定不會像從 Java 8 向 Java 11 遷移那樣痛苦。