考虑以下项目结构
Root |-build.gradle |-SubProj1 | |-SubProj1A | | |-build.gradle | |-SubProj1B | | |-build.gradle |-SubProj2 |-SubProj2A | |-build.gradle |-SubProj2B | |-build.gradle
所有子项目都依赖于Somelib
,但具有不同的版本:
Subprojects under SubProj1 -- version 1.1
Subprojects under SubProj2 -- version 2.2
所以问题是如何将变量someVersion=1.1
传递给SubProj1和someVersion=2.2
下的子项目到SubProj2下的子项目?
一种可能的解决方案是在根SubProj1
文件中声明子项目SubProj2
和build.gradle
的版本变量。例如这样:
subprojects.findAll { subproject -> subproject.name.equals('SubProj1') }
.each {subproject -> subproject.ext.libVersion = '1.1'}
subprojects.findAll { subproject -> subproject.name.equals('SubProj2') }
.each {subproject -> subproject.ext.libVersion = '1.2'}
然后你可以在与SubProj1A
相同的子项目中得到它,如下所示:
project.parent.ext.libVersion