由于新的 Jackson 2.9 版本,Opentok SDK 不 Spring-boot 兼容

Opentok SDK not Spring-boot compliant due new Jackson 2.9 release

我的 Spring-boot 应用程序在 Jackson 2.9 于 3 月 2 日发布后开始失败。我正在使用 Gradle 构建和 Spring 启动版本 1.5.2,它依赖于 Jackson-core 2.8.7。

此外,我需要 Opentok SDK,我已将其添加为依赖项:

compile group: 'com.tokbox', name: 'opentok-server-sdk', version: '2.3.2'

我想原因是 Opentok SDK 依赖项定义允许为 Jackson 下载更新的 JAR,然后在下载多个版本的 Jackson JAR 时造成库不匹配:

https://github.com/opentok/Opentok-Java-SDK/blob/master/build.gradle

dependencies {
    ...
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '[2.3.1,2.99999)'

如何解决这个问题? 我不是 Gradle 的专家,但我可以以某种方式强制 Opentok 使用 2.8.7 版本吗? 我现在根本无法交付,所以请帮忙。

我认为这应该有用:https://docs.gradle.org/current/userguide/dependency_management.html#sub:version_conflicts

以及此处的指南:https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.dsl.DependencyHandler.html#N1627D

方法可能不同,但您可以将 Gradle 设置为 force = true 以用于 Spring 的 jackson-databind 依赖项。

我是这样整理的

compile ('com.tokbox:opentok-server-sdk:2.3.2')
{
    // Jackson 2.9 is not compatible with Spring boot 1.4.4 - 1.5.2
    exclude group: 'com.fasterxml.jackson.core', module: 'jackson-databind'
}