Я играю с Gradle, пытаясь портировать свой проект Maven, и вот моя проблема:
В maven у нас есть <dependencyManagement>
, который предоставляет общую (по умолчанию) версию для определенных зависимостей (которая используется только в том случае, если в подпомпе этот артефакт используется без номера версии). Это также, насколько я понимаю, заставляет определенную версию для всех переходных зависимостей. Поэтому, если я правильно понимаю, даже если у артефакта B, который у нас есть как зависимость, есть зависимость от артефакта C версии 1.0, мы все равно будем использовать версию артефакта C, определенную в <dependencyManagement>
(так что это может быть 2.0). Это правильно?
Если так, то есть ли способ сделать что-то подобное в Gradle? Я знаю, что обычным способом замены <dependencyManagement>
является просто создать карту Groovy в одном из сценариев сборки. Но как я могу заставить транзитивную версию зависимости? Если я использую «силу» Грэдла, не повлияет ли она на все (не только переходные) зависимости (что явно не то, что я хочу)?