Почему ограничения зависимости gradle добавляют зависимость к проекту root? - PullRequest
0 голосов
/ 01 марта 2020

Я не понимаю, почему, если я объявляю ограничения в 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

исходный код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...