gradle:在一些嵌套子项目中共享变量

问题描述 投票:1回答:1

考虑以下项目结构

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下的子项目?

gradle
1个回答
1
投票

一种可能的解决方案是在根SubProj1文件中声明子项目SubProj2build.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
© www.soinside.com 2019 - 2024. All rights reserved.