Gradle multi project build переопределить зависимости в дочернем
В многопроектной сборке gradle:
root << applies: dependency{ 'org:module:version1' }
|- foo (version1) is ok here
|- bar (version1) not ok here, I need to use version 2
Есть ли способ добиться такого поведения?
1 ответ
Решение
Альтернативой, которую вы можете использовать, является strictly
ключевое слово. В вашемbar
модуль вы можете написать что-то вроде:
dependencies {
//Other dependencies
compile("org:module") {
version {
strictly version2
}
because("Only version2 works in this module")
}
}
Кроме того, если вы проверите свой bar
график зависимости модуля с:
./gradlew -q dependencies
Вы получите такой результат:
compileClasspath - Compile classpath for source set 'main'.
+--- project :
| +--- org.sample:dependency:1.0
| +--- org.sample:other-dependency:1.0
| \--- org:module:{strictly version2} -> version2