From 6f598372024adf4b6154148b130e72c364fbf98f Mon Sep 17 00:00:00 2001 From: Shannon Pamperl Date: Thu, 7 Dec 2023 07:54:45 -0600 Subject: [PATCH] Correct ordering of resources on the classpath. Fixes gh-1981 (#2060) (#2061) --- .../SpringCloudContractVerifierGradlePlugin.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/java/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.java b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/java/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.java index cd846b6601..2863fc4ba2 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/java/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/java/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.java @@ -182,6 +182,8 @@ public class SpringCloudContractVerifierGradlePlugin implements Plugin private SourceSet configureSourceSets(ContractVerifierExtension extension, JavaPluginExtension javaExtension, SourceSet contractTest) { SourceSetContainer sourceSets = javaExtension.getSourceSets(); + ConfigurationContainer configurations = project.getConfigurations(); + ObjectFactory objects = project.getObjects(); contractTest.getJava().srcDirs(extension.getGeneratedTestJavaSourcesDir()); project.getPlugins().withType(GroovyPlugin.class, groovyPlugin -> { GroovySourceDirectorySet groovy = contractTest.getExtensions().getByType(GroovySourceDirectorySet.class); @@ -192,11 +194,11 @@ public class SpringCloudContractVerifierGradlePlugin implements Plugin SourceSetOutput mainOutput = sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME).getOutput(); SourceSetOutput testOutput = sourceSets.getByName(SourceSet.TEST_SOURCE_SET_NAME).getOutput(); - FileCollection compileClasspath = contractTest.getCompileClasspath(); - contractTest.setCompileClasspath(compileClasspath.plus(mainOutput).plus(testOutput)); + Configuration contractTestCompileClasspathConfiguration = configurations.getByName(contractTest.getCompileClasspathConfigurationName()); + Configuration contractTestRuntimeClasspathConfiguration = configurations.getByName(contractTest.getRuntimeClasspathConfigurationName()); - FileCollection runtimeClasspath = contractTest.getRuntimeClasspath(); - contractTest.setRuntimeClasspath(runtimeClasspath.plus(mainOutput).plus(testOutput)); + contractTest.setCompileClasspath(objects.fileCollection().from(testOutput, mainOutput, contractTestCompileClasspathConfiguration)); + contractTest.setRuntimeClasspath(objects.fileCollection().from(contractTest.getOutput(), testOutput, mainOutput, contractTestRuntimeClasspathConfiguration)); return contractTest; }