我正在努力使用Gradle和以下项目结构的构建配置(非常简单......):
/projA
/projB
/projC
projC使用projB中的类。
在projA / settings.gradle中:
include 'projB'
include 'projC'
在projC / build.gradle中:
dependencies{
compile project(':projB')
}
在IntelliJ中我没有依赖项解析的问题,但是当我在projA中运行./gradlew构建时,我遇到了编译错误:
ClassC: Unresolved reference: ClassB
(其中ClassC是projC的类,它在使用ClassB时是失败的,这是一个来自projB的类,显然......)
请注意,代码是用Kotlin语言编写的,我在IntelliJ(spring boot run)中运行应用程序没有任何问题,但是使用Gradle的任何构建都会给我一个错误(在Intellij和命令行中)。< / p>
我错过了什么?
此致 阿德里安
答案 0 :(得分:0)
为rootProject
添加额外的顶级目录是一种常见的Gradle习惯用法。这是一个特殊项目,它是构建中所有其他项目的父项,位于multi-project build。
这就是您的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')
}
应该这样做。