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
Другие вопросы по тегам