Android Studio - Gradle - 具有嵌套依赖项的多项目构建

Tac*_*0sS 6 dependencies android gradle android-studio android-gradle-plugin

我问这个这个前质疑很长一段时间,现在我有时间(没有选择)我已经通过我的一些项目的设立工作我的方式.

结构类似于前一个问题中的结构,但有一个扭曲......

?Just a folder
?
??? Project 1 - (Pure Java Modules)
?    ?
?    ??? Module A1
?    ??? Module B1
?    :
?    ??? Module Z1
?  
??? Project 2 - (Android Libraries Modules)
?    ?
?    ??? Module A2
?    ??? Module B2
?    :
?    ??? Module Z2
?  
??? Actual Android Project
Run Code Online (Sandbox Code Playgroud)

所有子模块都依赖于前一个模块,例如Z1取决于X1 ...... B1取决于A1,同样适用于{X} 2系列.

由于我有多个项目依赖于相同的顶级库(Z2,Z1),我想节省我的痛苦和文本,并尽可能避免在项目中重复以下内容:

在设置文件中:

include ':project1', ':project1:A1', ':project1:B1',..., ':project1:Z1'
include ':project2', ':project2:A2', ':project2:B2',..., ':project2:Z2'
project(':project1').projectDir = new File(settingsDir, '../somepath1/project1')
project(':project2').projectDir = new File(settingsDir, '../somepath2/project2')
project(':project2:A2').projectDir = new File(settingsDir, '../somepath2/project2/A2')
...
... etc...
Run Code Online (Sandbox Code Playgroud)

在构建文件中:

evaluationDependsOn(':Project1')
evaluationDependsOn(':Project2')

dependencies {
    compile project(':Project1:A1')
    compile project(':Project1:B1')
    ...
    compile project(':Project1:Z1')

    compile project(':Project2:A2')
    compile project(':Project2:B2')
    ...
    compile project(':Project2:Z2')
}
Run Code Online (Sandbox Code Playgroud)

如果我将顶层库项目Z1,Z2添加到应用程序中,子项目层次结构中的其余嵌套依赖项将在不需要的情况下解析,这是有意义的(假设这在Eclipse/Maven /其他依赖项中是可行的)在每个顶级项目中逐字指定每一个.

Gradle有可能吗?我将如何使用Gradle进行此操作?