Принудительное соответствие версии библиотеки B транзитивной зависимости библиотеки A - PullRequest
0 голосов
/ 26 мая 2020

Если я включу CXF 3.3.6 в проект

implementation(group: 'org.apache.cxf', name: 'cxf-rt-transports-http-jetty', version: "3.3.6")

Используя задачу зависимостей, мы увидим, что он также внесет jetty-server:9.4.27.v20200227

+--- org.apache.cxf:cxf-rt-transports-http-jetty:3.3.6
|    +--- org.apache.cxf:cxf-core:3.3.6 (*)
|    +--- org.apache.cxf:cxf-rt-transports-http:3.3.6 (*)
|    +--- org.eclipse.jetty:jetty-server:9.4.27.v20200227

Теперь я хотел бы чтобы добавить причал-сервлет в проект:

implementation(group: 'org.eclipse.jetty', name: 'jetty-servlet', version: 'XYZ!?!')

Есть ли удобный способ заставить зависимость jetty-servlet соответствовать версии транзитивной зависимости jetty-server, введенной CXF?

1 Ответ

0 голосов
/ 26 мая 2020

Если зависимости будут иметь одинаковую версию, вы можете использовать настраиваемое правило разрешения зависимости :

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        if (details.requested.group == 'org.eclipse.jetty') {
            details.useVersion "9.4.27.v20200227"
            details.because "Align all Eclipse Jetty dependencies to same version"
        }
    }
}
...