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?