我有这个最小的项目结构,其中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。

最佳答案

我弄清楚“问题”是什么-我没有在寻找正确的地方。

导入项目时,默认情况下,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

10-02 23:50