Обеспечить наивысшую версию из нескольких конфликтующих переходных зависимостей в Gradle - PullRequest
1 голос
/ 10 мая 2019

Я работаю над большим проектом с несколькими службами и библиотеками, в основном в grails, с gradle компоновщиком. Я пытаюсь обновить библиотеку (скажем, logback) по соображениям безопасности.

Я уже обновил его в одной из наших библиотек (скажем, our-logger), вот так:

#our-logger/build.gradle
...
dependencies {
    ...
    compile 'ch.qos.logback:logback-classic:1.2.3'
    ...
}

когда я обновляю службу (скажем, our-service) для использования новой версии our-logger, я получаю вход в систему из других библиотек, и gradle выбирает ближайшую версию более низкую через cobertura и некоторые другие зависимости, вместо более высокой версии, проходящей через our-logger.

#our-service/build.gradle
...
apply plugin: 'cobertura'
...
dependencies {
    ...
    compile 'our-logger:9.99' # safe now with logback-1.2.3
    ...
}
~/our-service $ ./gradlew dependencies
...

cobertura
\--- net.sourceforge.cobertura:cobertura:2.1.1
     +--- ch.qos.logback:logback-classic:1.0.13 -> 1.1.11
     |    \--- ch.qos.logback:logback-core:1.1.11
...
compile - Dependencies for source set 'main' (deprecated, use 'implementation ' instead).
+--- org.grails:grails-dependencies:3.3.8
|    +--- org.springframework.boot:spring-boot-starter-logging:1.4.2.RELEASE -> 1.5.15.RELEASE
|    |    +--- ch.qos.logback:logback-classic:1.1.11
|    |    |    +--- ch.qos.logback:logback-core:1.1.11
...
+--- our-logger:9.99
|    +--- ch.qos.logback:logback-classic:1.2.3 -> 1.1.11 (*)

Как применить logback-1.2.3 без явного объявления его во всех службах?

1 Ответ

1 голос
/ 12 мая 2019

Документы Gradle хранятся в разделе Advanced Dependency Management.Вы должны быть в состоянии удовлетворить свою цель, используя excludes.Есть и другие способы Gradle Docs

compile(“some:other:dependency”) {
    exclude group: 'ch.qos.logback', module: 'logback-classic'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...