子项目依赖项与 Gradle 失败



我正在努力解决 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')
}

这应该可以做到。

最新更新