Skip to content

Commit 2cca560

Browse files
committed
Restrict "validateMultiReleaseJar" task to Java 25+
This commit configures the "validateMultiReleaseJar" Gradle task only if the current Java runtime for Gradle is 25+. Closes gh-35850
1 parent e0353fe commit 2cca560

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

buildSrc/src/main/java/org/springframework/build/multirelease/MultiReleaseJarPlugin.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import javax.inject.Inject;
2020

21+
import org.gradle.api.JavaVersion;
2122
import org.gradle.api.Plugin;
2223
import org.gradle.api.Project;
2324
import org.gradle.api.artifacts.ConfigurationContainer;
@@ -64,10 +65,12 @@ public void apply(Project project) {
6465
dependencies,
6566
objects);
6667

67-
TaskProvider<MultiReleaseJarValidateTask> validateJarTask = tasks.register(VALIDATE_JAR_TASK_NAME, MultiReleaseJarValidateTask.class, (task) -> {
68-
task.getJar().set(tasks.named("jar", Jar.class).flatMap(AbstractArchiveTask::getArchiveFile));
69-
task.getJavaLauncher().set(task.getJavaToolchainService().launcherFor(spec -> spec.getLanguageVersion().set(JavaLanguageVersion.of(25))));
70-
});
71-
tasks.named("check", task -> task.dependsOn(validateJarTask));
68+
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_25)) {
69+
TaskProvider<MultiReleaseJarValidateTask> validateJarTask = tasks.register(VALIDATE_JAR_TASK_NAME, MultiReleaseJarValidateTask.class, (task) -> {
70+
task.getJar().set(tasks.named("jar", Jar.class).flatMap(AbstractArchiveTask::getArchiveFile));
71+
task.getJavaLauncher().set(task.getJavaToolchainService().launcherFor(spec -> spec.getLanguageVersion().set(JavaLanguageVersion.of(25))));
72+
});
73+
tasks.named("check", task -> task.dependsOn(validateJarTask));
74+
}
7275
}
7376
}

buildSrc/src/test/java/org/springframework/build/multirelease/MultiReleaseJarPluginTests.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import org.gradle.testkit.runner.UnexpectedBuildFailure;
3030
import org.junit.jupiter.api.BeforeEach;
3131
import org.junit.jupiter.api.Test;
32+
import org.junit.jupiter.api.condition.DisabledForJreRange;
33+
import org.junit.jupiter.api.condition.JRE;
3234
import org.junit.jupiter.api.io.TempDir;
3335

3436
import static org.assertj.core.api.Assertions.assertThat;
@@ -122,6 +124,7 @@ public class Main {}
122124
}
123125

124126
@Test
127+
@DisabledForJreRange(max = JRE.JAVA_24, disabledReason = "'jar --validate' is available as of Java 25")
125128
void validateJar() throws IOException {
126129
writeBuildFile("""
127130
plugins {

0 commit comments

Comments
 (0)