子项目中看不到子项目中添加的依赖项。forGradle多模块Kotlin DSL中的每个子项目都不可见

时间:2019-04-09 13:43:52

标签: gradle build.gradle gradle-kotlin-dsl

我有一个带有kotlin dsl的多模块gradle项目,称为流数据处理。它在github https://ibb.co/ThFjnMz中。

根项目的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中不可用。

here

当我执行`gradle word-count-demo:dependencies'时,它没有显示可用于子项目的kafka依赖项。

我不想在每个项目中明确指定依赖项。

这里出了什么问题?

1 个答案:

答案 0 :(得分:0)

看来这将多次添加相同的依赖项。我认为您需要将其翻转,然后在dependencies内部调用subprojects,然后在allprojects外部中调用,就像这样:

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

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