Quantcast
Channel: Gradle Forums - Latest posts
Viewing all articles
Browse latest Browse all 19888

Why does constraints{} add dependency to root project?

$
0
0

Hi everyone!
I have a simple demo Gradle multi-module project:

├── settings.gradle.kts
├── build.gradle.kts
├──greeter
│ └── build.gradle.kts
├── greeting-library
└── build.gradle.kts

root build.gradle.kts:

  subprojects {
    apply(plugin = "java")
    dependencies {
        constraints {
            "implementation"("org.apache.commons:commons-lang3:3.7")
        }
    }
}
allprojects {
    repositories {
        jcenter()
    }
}

greeting-library/build.gradle.kts

dependencies {
    implementation("org.apache.commons:commons-lang3")
}

greeter/build.gradle.kts

plugins {
    application
}

dependencies {
    implementation(project(":greeting-library"))
}

application {
    mainClassName = "greeter.Greeter"
}

I don’t understand why if I declare constraints in root build.gradle.kts and add the dependency in greeting-library the dependency also available in greeter module ?

> gradle greeter:dependencies

runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.commons:commons-lang3:3.7
\--- project :greeting-library
     +--- org.apache.commons:commons-lang3:3.7
     \--- org.apache.commons:commons-lang3 -> 3.7

Are there ways to declare a dependency version in the root build.gradle.kts only?


Viewing all articles
Browse latest Browse all 19888

Trending Articles