Jenkins Requires Java 11: Adoption Trends, Lifecycle Analysis, and Implications
The article analyzes Jenkins' shift to requiring Java 11, presents adoption and lifecycle data for major Java versions, outlines observed migration patterns, and explains how these trends reduce risk for users while encouraging timely upgrades to supported Java releases.
Jenkins aims to provide a world‑class platform experience for end users and developers, with Java as its core object‑oriented language and cross‑platform JVM runtime; since its inception Jenkins has been a major Java consumer, distributing over 1,800 plugins to more than 300,000 installations.
Starting with Jenkins 2.357 (released 28 June 2022) and the upcoming September LTS, Jenkins requires Java 11, while support for Java 17 began with Jenkins 2.355 (14 June 2022) and 2.346.1 LTS (22 June 2022). Plugins were prepared in JENKINS‑68446 and should be upgraded via the plugin manager before and after moving to Jenkins 2.357.
Long‑time Jenkins users and Java developers may recall earlier migrations to Java 7 and Java 8; those moves were modest compared with the scale of migration to Java 9 and later, which introduced major ecosystem changes such as new licensing, release cadence, LTS cycles, and technical features like Project Jigsaw, reducing backward compatibility.
Data on Java version adoption within Jenkins installations show a Gaussian‑shaped lifecycle for each major release: rapid adoption, a peak, a decline after Jenkins stops requiring that version, and eventual end‑of‑life (EOL) on the vendor side.
Java 6
Java 7
Java 8
Java 11
Release date
11 Dec 2006
7 Jul 2011
18 Mar 2014
25 Sep 2018
Rapid adoption
Oct 2009 (11,193 installs)
Feb 2013 (10,997 installs)
Feb 2015 (12,210 installs)
Nov 2019 (10,094 installs)
Peak usage
Mar 2013 (47,244 installs)
Jun 2015 (68,681 installs)
Feb 2021 (261,468 installs)
N/A
Jenkins next major version requirement
May 2015 (21,798 installs)
Apr 2017 (40,569 installs)
Jun 2022 (185,286 installs)
N/A
Terminal usage decline
May 2016 (10,283 installs)
Mar 2019 (10,123 installs)
N/A
N/A
End‑of‑life (EOL)
31 Dec 2015
31 Jul 2019
at least Nov 2026
at least Oct 2024
Further observations derived from the data include:
Jenkins users typically need at least one year before adopting a new Java version.
Once adoption begins, the previous Java version reaches its peak and then declines.
The Jenkins project usually starts requiring a newer Java version roughly halfway through the decline phase of the prior version.
When Jenkins mandates a specific Java version, usage of older versions continues to fall until the final decline stage.
The final decline stage generally coincides with the vendor ending active support for that Java version.
It is crucial that Jenkins never requires a given Java version until the usage of the previous version has clearly dropped, thereby reducing risk by ensuring most users run the new version in production. Requiring a newer Java version also motivates lagging users to upgrade and prevents reliance on versions approaching vendor EOL.
The requirement for Java 11 aligns with historical precedent; Java 8 usage peaked in February 2021 and has been declining, while Java 11 adoption has been rising rapidly since November 2019 but has not yet peaked, indicating that now is the appropriate time to mandate Java 11.
「BUG挖掘机·性能征服者·头顶锅盖」
Performance Testing Topics
Java, Groovy, Go, Python
Unit Testing & White‑Box
FunTester Community Highlights
Testing Theory Nuggets
API Functional Testing Topics
FunTester Video Topics
Case Studies: Solutions, Bugs, Crawlers
UI Automation Topics
Testing Tools Topics
阅读原文,跳转我的仓库地址
FunTester
10k followers, 1k articles | completely useless
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.