зависимости, добавленные в subprojects.forEach в многоуровневом мультимодульном DSL kotlin, не видны для подпроектов - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть многомодульный gradle проект с kotlin dsl, называемый stream-data-processing.Он находится в github здесь .

Файл корневого проекта build.gradle.kts - -

    plugins {
        base
        java
    }

    allprojects {

        group = "streams-data-processing"
        version = "1.0"

        repositories {
            jcenter()
            mavenCentral()
            mavenLocal()
        }

        dependencies {
            subprojects.forEach {
                compile("org.apache.kafka:kafka-streams:2.2.0")

                testImplementation("junit:junit:4.12")
            }
        }

    }

settings.gradle.kts - -

   rootProject.name = "stream-data-processing"
   include ("word-count-demo")

У меня есть некоторый подпроект под названием word-count-demo.

Файл build.gradle.kts для этого подпроекта - -

    plugins {
        java

        application
    }

Но классы в kafka-streams недоступны в word-count-demo.

Idea Compilation error

, когда я выполнял `gradle word-count-demo: зависимости, он не показывает зависимости kafka, доступные для подпроекта.

Я не хочу явно указывать зависимости в каждом проекте.

В чем здесь ошибка?

1 Ответ

0 голосов
/ 13 апреля 2019

Похоже, это добавит одни и те же зависимости несколько раз.Я думаю, вам нужно перевернуть его и позвонить dependencies внутри subprojects и снаружи из allprojects, вот так:

allprojects {
    group ...
    version ...
    repositories ...
}

subprojects {
    dependencies {
        compile("org.apache.kafka:kafka-streams:2.2.0")
        testImplementation("junit:junit:4.12")
    }
}
...