Принудительная транзитивная версия зависимости в Gradle - PullRequest
2 голосов
/ 08 марта 2012

Я играю с Gradle, пытаясь портировать свой проект Maven, и вот моя проблема:

В maven у нас есть <dependencyManagement>, который предоставляет общую (по умолчанию) версию для определенных зависимостей (которая используется только в том случае, если в подпомпе этот артефакт используется без номера версии). Это также, насколько я понимаю, заставляет определенную версию для всех переходных зависимостей. Поэтому, если я правильно понимаю, даже если у артефакта B, который у нас есть как зависимость, есть зависимость от артефакта C версии 1.0, мы все равно будем использовать версию артефакта C, определенную в <dependencyManagement> (так что это может быть 2.0). Это правильно?

Если так, то есть ли способ сделать что-то подобное в Gradle? Я знаю, что обычным способом замены <dependencyManagement> является просто создать карту Groovy в одном из сценариев сборки. Но как я могу заставить транзитивную версию зависимости? Если я использую «силу» Грэдла, не повлияет ли она на все (не только переходные) зависимости (что явно не то, что я хочу)?

Ответы [ 2 ]

8 голосов
/ 08 марта 2012

В Gradle принудительное использование версии (например, с Configuration.resolutionStrategy.force) приведет к ее принудительному использованию для всех зависимостей конфигурации, прямой и транзитивной. Не существует первоклассной функции, которая заставляет версию только для транзитивных зависимостей. У вас есть действительный вариант использования для этого? В конце концов, и Gradle, и Maven все равно выберут одну версию для зависимости, независимо от того, где и как часто она появляется в дереве зависимостей.

0 голосов
/ 04 апреля 2016

Существует функция ResolutionStrategy, которая позволяет принудительно устанавливать версии артефактов, включая переходные зависимости: https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html

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