【问题标题】:Gradle subprojects won't compile with dependency on other subprojectGradle 子项目不会编译依赖于其他子项目
【发布时间】:2016-08-08 02:28:47
【问题描述】:

我有一个具有以下结构的多项目 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')"

从顶级“项目 A”运行 Gradle 任务时一切正常

但是,当我尝试在子项目(例如“子项目 C”)上运行单个任务时,我收到以下错误。

FAILURE:构建失败并出现异常

出了什么问题:

评估根项目“子项目 C”时出现问题。

在根项目“子项目 C”中找不到路径为“:Shared”的项目。

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

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

rootProject.name = 'Project A'

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

这是我的“子项目 C”的 build.gradle 文件

dependencies {
    compile project(':Shared')
}

额外的问题...子项目是否需要一个将“rootProject.name”设置为子项目名称的 settings.gradle 文件?

【问题讨论】:

  • 您如何在子项目中运行单个任务?正确的方法是 gradle :project:task
  • @RaviVasamsetty 现在我正在使用 eclipse gradle 插件来运行它们。
  • 我正在使用 buildship gradle 插件,运行子项目任务没有任何问题。你用的是哪个插件?

标签: gradle gradle-eclipse


【解决方案1】:

就我而言,问题是我的子项目有settings.gradle

rootProject.name = 'MySubProject'

删除文件修复了它。 (看来你肯定没有文件,删除属性是不够的。)

【讨论】:

  • 到目前为止,这是经过多次搜索后找到的最流畅、最简单的答案。谢谢
【解决方案2】:

我认为问题在于您的 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.

【讨论】:

猜你喜欢
  • 2021-06-16
  • 1970-01-01
  • 2022-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 2013-06-19
相关资源
最近更新 更多