我正在努力解决 Gradle 和以下项目结构的构建配置(非常简单......
/projA
/projB
/projC
projC 使用 projB 中的类。
In projA/settings.gradle:
include 'projB'
include 'projC'
In projC/build.gradle:
dependencies{
compile project(':projB')
}
在IntelliJ 中,我没有依赖解析的问题,但是当我在 projA 中运行 ./gradlew 构建时,我遇到了编译错误:
ClassC: Unresolved reference: ClassB
(其中 ClassC 是 projC 的类,在使用 ClassB 时失败了,显然是 projB 的一个类......
请注意,代码是 Kotlin 语言的,我在 IntelliJ(春季启动运行(中运行应用程序没有任何问题,但任何使用 Gradle 的构建都会给我一个错误(在 Intellij 和命令行中(。
我错过了什么?
问候 阿德里安
这是一个常见的 Gradle 习语,为您的rootProject
提供一个额外的顶级目录。这是一个特殊项目,它是生成中所有其他项目的父项目,在多项目生成中。
这就是您的settings.gradle
文件所在的位置:
include ':projA:projB'
include ':projA:projC'
然后,我建议将 projA 作为 rootProject 的子目录,这样您的层次结构如下所示:
/myProject
settings.gradle
/projA
build.gradle
/projB
build.gradle
/projC
build.gradle
此外,在projC/build.gradle
中,您需要:
dependencies {
compile project(':projA:projB')
}
这应该可以做到。