diff --git a/devtools/gradle/src/main/java/io/quarkus/gradle/dependency/DependencyUtils.java b/devtools/gradle/src/main/java/io/quarkus/gradle/dependency/DependencyUtils.java index ffd70a158637a..d10ba758e398c 100644 --- a/devtools/gradle/src/main/java/io/quarkus/gradle/dependency/DependencyUtils.java +++ b/devtools/gradle/src/main/java/io/quarkus/gradle/dependency/DependencyUtils.java @@ -38,7 +38,7 @@ public static Configuration duplicateConfiguration(Project project, Configuratio configurationCopy.getDependencies().addAll(boms); for (Configuration toDuplicate : toDuplicates) { - for (Dependency dependency : toDuplicate.getDependencies()) { + for (Dependency dependency : toDuplicate.getAllDependencies()) { if (includedBuild(project, dependency.getName()) != null) { continue; } diff --git a/integration-tests/gradle/src/main/resources/configuration-inheritance-project/build.gradle b/integration-tests/gradle/src/main/resources/configuration-inheritance-project/build.gradle new file mode 100644 index 0000000000000..5071900df3893 --- /dev/null +++ b/integration-tests/gradle/src/main/resources/configuration-inheritance-project/build.gradle @@ -0,0 +1,30 @@ +plugins { + id 'java' + id 'io.quarkus' +} + +group = 'com.quarkus.demo' +version = '1.0' + +repositories { + mavenCentral() + if (System.properties.containsKey('maven.repo.local')) { + maven { + url System.properties.get('maven.repo.local') + } + } else { + mavenLocal() + } +} + +dependencies { + implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") + + implementation 'io.quarkus:quarkus-resteasy' + testImplementation 'io.quarkus:quarkus-junit5' + testImplementation 'io.rest-assured:rest-assured' + + implementation 'org.apache.commons:commons-collections4:4.4' + testImplementation 'org.apache.commons:commons-collections4::tests' +} + diff --git a/integration-tests/gradle/src/main/resources/configuration-inheritance-project/gradle.properties b/integration-tests/gradle/src/main/resources/configuration-inheritance-project/gradle.properties new file mode 100644 index 0000000000000..8f063b7d88ba4 --- /dev/null +++ b/integration-tests/gradle/src/main/resources/configuration-inheritance-project/gradle.properties @@ -0,0 +1,2 @@ +quarkusPlatformArtifactId=quarkus-bom +quarkusPlatformGroupId=io.quarkus \ No newline at end of file diff --git a/integration-tests/gradle/src/main/resources/configuration-inheritance-project/settings.gradle b/integration-tests/gradle/src/main/resources/configuration-inheritance-project/settings.gradle new file mode 100644 index 0000000000000..2e07dd7973d1f --- /dev/null +++ b/integration-tests/gradle/src/main/resources/configuration-inheritance-project/settings.gradle @@ -0,0 +1,21 @@ +pluginManagement { + repositories { + if (System.properties.containsKey('maven.repo.local')) { + maven { + url System.properties.get('maven.repo.local') + } + } else { + mavenLocal() + } + mavenCentral() + gradlePluginPortal() + } + //noinspection GroovyAssignabilityCheck + plugins { + id 'io.quarkus' version "${quarkusPluginVersion}" + } +} + +rootProject.name = 'quarkus-configuration-inheritance' + + diff --git a/integration-tests/gradle/src/main/resources/configuration-inheritance-project/src/main/java/org/acme/quarkus/sample/HelloResource.java b/integration-tests/gradle/src/main/resources/configuration-inheritance-project/src/main/java/org/acme/quarkus/sample/HelloResource.java new file mode 100644 index 0000000000000..e3d045c22fe83 --- /dev/null +++ b/integration-tests/gradle/src/main/resources/configuration-inheritance-project/src/main/java/org/acme/quarkus/sample/HelloResource.java @@ -0,0 +1,17 @@ +package org.acme.quarkus.sample; + +import javax.inject.Inject; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +@Path("/hello") +public class HelloResource { + + @GET + @Produces(MediaType.TEXT_PLAIN) + public String hello() { + return "hello"; + } +} \ No newline at end of file diff --git a/integration-tests/gradle/src/test/java/io/quarkus/gradle/DependencyResolutionTest.java b/integration-tests/gradle/src/test/java/io/quarkus/gradle/DependencyResolutionTest.java new file mode 100644 index 0000000000000..509cfb6d3d0fc --- /dev/null +++ b/integration-tests/gradle/src/test/java/io/quarkus/gradle/DependencyResolutionTest.java @@ -0,0 +1,21 @@ +package io.quarkus.gradle; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; + +import org.junit.jupiter.api.Test; + +public class DependencyResolutionTest extends QuarkusGradleWrapperTestBase { + @Test + public void shouldResolveDependencyVersionFromSuperConfigurationProject() + throws IOException, URISyntaxException, InterruptedException { + final File projectDir = getProjectDir("configuration-inheritance-project"); + + final BuildResult result = runGradleWrapper(projectDir, "clean", "quarkusBuild"); + + assertThat(result.getTasks().get(":quarkusBuild")).isEqualTo(BuildResult.SUCCESS_OUTCOME); + } +}