Copy attributes from runtimeClasspath to productionRuntimeClasspath

Fixes gh-38209
This commit is contained in:
Andy Wilkinson
2023-11-06 11:50:27 +00:00
parent f381a9c69d
commit b01235e68d
4 changed files with 41 additions and 31 deletions

View File

@@ -24,6 +24,8 @@ import java.io.StringReader;
import java.util.HashSet;
import java.util.Set;
import java.util.jar.JarOutputStream;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.gradle.testkit.runner.BuildResult;
import org.gradle.testkit.runner.TaskOutcome;
@@ -146,11 +148,12 @@ class JavaPluginActionIntegrationTests {
}
@TestTemplate
void productionRuntimeClasspathIsConfiguredWithAttributes() {
assertThat(this.gradleBuild.build("build").getOutput()).contains("3 productionRuntimeClasspath attributes:")
.contains("org.gradle.usage: java-runtime")
.contains("org.gradle.libraryelements: jar")
.contains("org.gradle.dependency.bundling: external");
void productionRuntimeClasspathIsConfiguredWithAttributesThatMatchRuntimeClasspath() {
String output = this.gradleBuild.build("build").getOutput();
Matcher matcher = Pattern.compile("runtimeClasspath: (\\[.*\\])").matcher(output);
assertThat(matcher.find()).as("%s found in %s", matcher, output).isTrue();
String attributes = matcher.group(1);
assertThat(output).contains("productionRuntimeClasspath: " + attributes);
}
@TestTemplate