Gradle 子项目不会编译依赖于其他子项目

Gradle subprojects won't compile with dependency on other subproject

我有一个具有以下结构的多项目 gradle 项目。

Project A: The top level project that all sub projects reside in.
  SubProject B: 
  SubProject C:
  SubProject D:
  SubProject E:
  SubProject Shared: Every 'SubProject' has a dependency to this project "compile project(':Shared')"

当 运行宁 Gradle 顶级任务 'Project A'

时一切正常

但是,当我尝试 运行 子项目(例如 'SubProject C' 上的单个任务时,出现以下错误。

FAILURE: Build failed with an exception

What went wrong:

A problem occurred evaluating root project 'SubProject C'.

Project with path ':Shared' could not be found in root project 'SubProject C'.

我想我在这里看到了问题,Gradle 认为我的子项目是根项目?但是我不知道如何解决这个问题。

我的顶级 settings.gradle 文件如下所示

rootProject.name = 'Project A'

include 'SubProject B'
include 'SubProject C'
include 'SubProject D'
include 'SubProject E'
include 'SubProject Shared'

这是我的 build.gradle 文件 'SubProject C'

dependencies {
    compile project(':Shared')
}

奖金问题...子项目是否需要 settings.gradle 文件并将 'rootProject.name' 设置为子项目名称?

我认为问题出在您的 settings.gradle 文件上。

用以下代码替换您的 settings.gradle 文件。

rootProject.name = 'Project A'

include 'SubProject B',':SubProject C',':SubProject D',':SubProject E'
include ':SubProject Shared'

尝试 运行 'SubProjectC' 的构建脚本。希望有用。

然后回答你的第二个问题。

We don't need seperate settings.gradle for each subprojects.

在我的例子中,问题是我的子项目有 settings.gradle

rootProject.name = 'MySubProject'

删除文件修复了它。 (看来你肯定根本就没有这个文件,把属性去掉是不行的。)