Как включить jar модуля в качестве зависимости в другой модуль в Gradle? - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть 2 модуля, назовем их A, B.

, модуль A .gradle -

dependencies {
    compileInclude group: "Service1", name: "Service1", version: "$rootProject.ext.Service1"
    compileInclude group: "Service2", name: "Service2", version: "$rootProject.ext.Service2"
    compileInclude group: "Service3", name: "Service3", version: "$rootProject.ext.Service3"
}

, модуль B .gradle -

dependencies {
    compileOnly project(":modules:ModuleA")
}

Iхотел бы использовать Service1.Jar модуля A в модуле B, без необходимости переделывать другой в модуле B.

возможно ли это?

1 Ответ

0 голосов
/ 27 февраля 2019

Вы спрашиваете об транзитивном управлении зависимостями.

Gradle поддерживает это "из коробки" при использовании плагина java-library :

  • Все, что помещенов конфигурации api транзитивно подвергается compile classpath потребителей,
  • Все, что находится в конфигурации implementation, подвергается воздействию только runtime classpathпотребители.

Теперь также считается наилучшей практикой продвигать к зависимостям первого уровня все, что требуется модулю для компиляции.Это предотвращает исчезновение зависимостей, если модуль, который принес его транзитивно, больше не делает этого.

Однако я понятия не имею, откуда берется конфигурация compileInclude и как она участвует в том, что модуль выставляет или нет.

И вы больше не должны использовать compile, а вместо этого implementation в модуле B.

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