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

时间:2016-08-08 02:28:47

标签: gradle gradle-eclipse

我有一个具有以下结构的Multi项目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任务时,一切正常

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

  

失败:构建因异常而失败

     

出了什么问题:

     

评估根项目'SubProject C'时出现问题。

     

在根项目'SubProject C'中找不到具有路径':Shared'的项目。

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

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

rootProject.name = 'Project A'

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

这是我的'SubProject C'

的build.gradle文件
dependencies {
    compile project(':Shared')
}

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

2 个答案:

答案 0 :(得分:1)

我认为问题出在你的settings.gradle文件中。

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

mvn deploy

尝试运行'SubProjectC'的构建脚本。希望它能奏效。

回答你的第二个问题。

rootProject.name = 'Project A'

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

答案 1 :(得分:0)

在我的情况下,问题是我的子项目的settings.gradle

rootProject.name = 'MySubProject'

删除文件将其修复。 (看来您根本没有文件,仅删除该属性是不够的。)