gradle: разделение переменных между некоторыми вложенными подпроектами - PullRequest
1 голос
/ 30 апреля 2019

Рассмотрим следующую структуру проекта

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?

1 Ответ

1 голос
/ 30 апреля 2019

Одним из возможных решений является объявление переменных версии для подпроектов 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...