我有这个最小的项目结构,其中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.main
和myproj.myproj-core.test
,每个模块对应于一个源集。然后,在这些子子模块级别添加模块依赖项。因此myproj.myproj-core.main
取决于myproj.myproj-common.main
,对于测试模块也是如此。
如果我清除了“每个源集创建单独的模块”导入项目,则不会创建这些子子模块,而myproj.myproj-core
仅取决于myproj.myproj-common
。