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'
删除文件修复了它。 (看来你肯定根本就没有这个文件,把属性去掉是不行的。)
我有一个具有以下结构的多项目 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'
删除文件修复了它。 (看来你肯定根本就没有这个文件,把属性去掉是不行的。)