Browse Source

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
pull/35853/head
Brian Clozel 4 weeks ago
parent
commit
2cca56064e
  1. 13
      buildSrc/src/main/java/org/springframework/build/multirelease/MultiReleaseJarPlugin.java
  2. 3
      buildSrc/src/test/java/org/springframework/build/multirelease/MultiReleaseJarPluginTests.java

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

@ -18,6 +18,7 @@ package org.springframework.build.multirelease; @@ -18,6 +18,7 @@ package org.springframework.build.multirelease;
import javax.inject.Inject;
import org.gradle.api.JavaVersion;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.artifacts.ConfigurationContainer;
@ -64,10 +65,12 @@ public class MultiReleaseJarPlugin implements Plugin<Project> { @@ -64,10 +65,12 @@ public class MultiReleaseJarPlugin implements Plugin<Project> {
dependencies,
objects);
TaskProvider<MultiReleaseJarValidateTask> validateJarTask = tasks.register(VALIDATE_JAR_TASK_NAME, MultiReleaseJarValidateTask.class, (task) -> {
task.getJar().set(tasks.named("jar", Jar.class).flatMap(AbstractArchiveTask::getArchiveFile));
task.getJavaLauncher().set(task.getJavaToolchainService().launcherFor(spec -> spec.getLanguageVersion().set(JavaLanguageVersion.of(25))));
});
tasks.named("check", task -> task.dependsOn(validateJarTask));
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_25)) {
TaskProvider<MultiReleaseJarValidateTask> validateJarTask = tasks.register(VALIDATE_JAR_TASK_NAME, MultiReleaseJarValidateTask.class, (task) -> {
task.getJar().set(tasks.named("jar", Jar.class).flatMap(AbstractArchiveTask::getArchiveFile));
task.getJavaLauncher().set(task.getJavaToolchainService().launcherFor(spec -> spec.getLanguageVersion().set(JavaLanguageVersion.of(25))));
});
tasks.named("check", task -> task.dependsOn(validateJarTask));
}
}
}

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

@ -29,6 +29,8 @@ import org.gradle.testkit.runner.GradleRunner; @@ -29,6 +29,8 @@ import org.gradle.testkit.runner.GradleRunner;
import org.gradle.testkit.runner.UnexpectedBuildFailure;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledForJreRange;
import org.junit.jupiter.api.condition.JRE;
import org.junit.jupiter.api.io.TempDir;
import static org.assertj.core.api.Assertions.assertThat;
@ -122,6 +124,7 @@ public class MultiReleaseJarPluginTests { @@ -122,6 +124,7 @@ public class MultiReleaseJarPluginTests {
}
@Test
@DisabledForJreRange(max = JRE.JAVA_24, disabledReason = "'jar --validate' is available as of Java 25")
void validateJar() throws IOException {
writeBuildFile("""
plugins {

Loading…
Cancel
Save