请考虑以下项目结构
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下的子项目?
答案 0 :(得分:1)
一种可能的解决方案是在根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