Intellij无法从Gradle多模块项目生成模块依赖项

时间:2018-12-17 01:14:01

标签: gradle intellij-idea

我有一个最小的项目结构,其中core应该依赖于common

myproj/
    core/
        build.gradle.kts
    common/
        build.gradle.kts
    build.gradle.kts
    settings.gradle.kts

myproj/build.gradle.kts

allprojects {
    repositories {
        jcenter()
    }
}

subprojects {
    version = "0.1"
}

myproj/settings.gradle.kts

rootProject.name = "myproj"

include("myproj-common")
project(":myproj-common").projectDir = File("common")
include("myproj-core")
project(":myproj-core").projectDir = File("core")

myproj / core / build.gradle.kts

plugins {
    kotlin("jvm") version "1.3.11"
}

dependencies {
    compile(project(":myproj-common"))
}

myproj / common / build.gradle.kts

plugins {
    kotlin("jvm") version "1.3.11"
}

当我将此设置导入IntelliJ时,它成功完成,但是如果我打开myproj-core的模块设置,则myproj-common不在依赖关系中。我在这里想念什么?

我正在使用IntelliJ 2018.3 Community和Gradle 5.0。

1 个答案:

答案 0 :(得分:0)

我弄清楚了“问题”是什么-我没有看对地方。

在导入项目时,默认情况下,IntelliJ <源>每个源集创建一个模块。例如,在模块myproj.myproj-core下,它创建两个单独的模块myproj.myproj-core.mainmyproj.myproj-core.test,每个模块对应于一个源集。然后在这些子子模块级别添加模块依赖项。因此myproj.myproj-core.main取决于myproj.myproj-common.main,并且对于测试模块也是如此。

如果我导入的项目未选中“每个源集创建单独的模块”,则不会创建这些子子模块,而myproj.myproj-core仅依赖于myproj.myproj-common