Я не понимаю, почему, если я объявляю ограничения в root build.gradle.kts и ad d зависимость в подпроекте без версии, Зависимость будет также доступна в проекте root?
У меня есть простой демонстрационный многомодульный проект Gradle:
├── 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()
}
}
приветствие-библиотека / 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"
}
Если я запускаю > Gradle Greeter: зависимости Я получу это:
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
исходный код