diff --git a/docs/usage/java.md b/docs/usage/java.md index 164868f745d669b3569399b2ac95157bba5a0964..9b7b5e209cfe42fe1252f0048005f1ba4f322346 100644 --- a/docs/usage/java.md +++ b/docs/usage/java.md @@ -8,6 +8,20 @@ description: Java versions support in Renovate Renovate can update Gradle and Maven dependencies. This includes libraries and plugins as well as the Gradle Wrapper. +## LTS releases + +The `config:base` preset includes the `workarounds:javaLTSVersions` preset. +The workaround limits Renovate to upgrade to LTS versions of the Java runtime only. + +If you want Renovate to offer all `major` Java updates then add `workarounds:javaLTSVersions` to the `ignorePreset` array: + +``` +{ + "extends": ["config:base"], + "ignorePresets": ["workarounds:javaLTSVersions"] +} +``` + ## Gradle Renovate detects versions that are specified in a string `'group:artifact:version'` and those specified in a map `(group:groupName, name:ArtifactName, version:Version)`. diff --git a/lib/config/presets/internal/workarounds.ts b/lib/config/presets/internal/workarounds.ts index 0e9c2028d5fb17f8679f055e28a96d709cfa8e94..5ce11b2c73c59f1cb5fb378103a8043669f924c0 100644 --- a/lib/config/presets/internal/workarounds.ts +++ b/lib/config/presets/internal/workarounds.ts @@ -14,6 +14,7 @@ export const presets: Record<string, Preset> = { 'workarounds:reduceRepologyServerLoad', 'workarounds:doNotUpgradeFromAlpineStableToEdge', 'workarounds:supportRedHatImageVersion', + 'workarounds:javaLTSVersions', ], ignoreDeps: [], }, @@ -118,4 +119,24 @@ export const presets: Record<string, Preset> = { }, ], }, + javaLTSVersions: { + description: 'Limit Java runtime versions to LTS releases', + packageRules: [ + { + description: + 'Limit Java runtime versions to LTS releases. To receive all major releases add `javaLTSVersions` to the `ignorePresets` array.', + matchDatasources: ['docker', 'adoptium-java'], + matchPackageNames: [ + 'eclipse-temurin', + 'amazoncorretto', + 'adoptopenjdk', + 'openjdk', + 'java', + ], + versioning: + 'regex:^(?<major>\\d+)?(\\.(?<minor>\\d+))?(\\.(?<patch>\\d+))?([\\._+](?<build>\\d+))?(-(?<compatibility>.*))?$', + allowedVersions: '/^(?:8|11|17|21|25|29)(?:\\.|$)/', + }, + ], + }, };