Как указать версию общего модуля в многопроектной сборке Gradle - PullRequest
0 голосов
/ 29 ноября 2018

Можно ли определить версию только в корневом сценарии сборки, чтобы все подпроекты использовали одну и ту же версию?Но не тяните модули в подпроекты, которые не используют эти модули.

Например: root.build.gradle

com.company:module-A:version-A
com.company:module-B:version-B
com.company:module-C:version-C

sub-project-1.build.gradle

   com.company:module-A
   com.company:module-B

sub-project-2.build.gradle

   com.company:module-A
   com.company:module-C

После сборки в модуле находятся только module-A.version-A и module-B.version-Bсубпроекта-1, а также модуль-A.version-A и модуль-C.version-C находятся в дистрибутиве суб-проекта-2.

1 Ответ

0 голосов
/ 29 ноября 2018

Два решения, они различаются в зависимости от того, где хранится информация о том, какие подпроекты зависят от общего модуля.

Решение 1:
Сохраните общую версию в корневом проекте, а затем объявитезависимости в подпроектах, использующих его.

корневой проект:

ext {
    commonModuleDependency = "com.company:module-A:version-A"
}

подпроект:

dependencies {
    compile rootProject.commonModuleDependency
}

Решение 2: Настройка подпроектов из корняпроект.В этом случае корневой проект знает, какие подпроекты имеют общую зависимость.

корневой проект:

subprojects.findAll {
    it.name in listOfSubprojectsThatHaveCommonModule
}.configure {
    dependencies {
        compile "com.company:module-A:version-A"
    }
}

Я бы посоветовал вам попробовать первый, потому что он, возможно, проще и менее связан ...
Я чувствую, что вы действительно хотите сначала ив первую очередь решить проблему отсутствия разных версий одной и той же зависимости, верно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...