【问题标题】:How to make sure Spring Boot extra Jackson modules are of same version?如何确保 Spring Boot 额外的 Jackson 模块具有相同的版本?
【发布时间】:2014-09-30 19:34:03
【问题描述】:

Spring Boot 已经包含核心 Jackson 依赖项 + 其他几个。

如果你例如想要添加 org.json 或 jsr-353 数据绑定模块来明确定义这些附加模块的版本。

有没有办法引用其他 Jackson 模块的相同版本?我想避免任何兼容性问题。

【问题讨论】:

  • 你使用的是 Maven 还是 Gradle?

标签: jackson spring-boot jackson-modules


【解决方案1】:

在 Gradle 中,只需在依赖项部分之前添加 ext['jackson.version'] = 'specify version here'

【讨论】:

    【解决方案2】:

    明确指定您的依赖项并删除您不需要的依赖项,如下所示:

    <!-- Add typical dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>jackson-databind</artifactId>
                    <groupId>com.fasterxml.jackson.core</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20131018</version>
        </dependency>
    </dependencies>
    

    您还可以通过覆盖属性来更改内置库的版本。通过使用以下命令查看有效 POM 中的属性,可以找到属性列表。您可以在有效的 POM 中找到@Phil Web 提到的属性。

    mvn help:effective-pom 
    

    【讨论】:

      【解决方案3】:

      Spring Boot 为以下 Jackson 模块提供托管依赖项:

      • 杰克逊注解
      • 杰克逊核心
      • 杰克逊数据绑定
      • 杰克逊数据类型乔达
      • jackson-datatype-jsr310

      如果您使用的是 maven,则可以使用 ${jackson.version} 属性在您自己的 POM 中定义其他模块。例如:

      <dependency>
          <groupId>com.fasterxml.jackson.datatype</groupId>
          <artifactId>jackson-datatype-whatever</artifactId>
          <version>${jackson.version}</version>
      </dependency>
      

      【讨论】:

      • 对于 Gradle 用户,如果您使用 Spring Boot Gradle 插件,您可以省略版本号以采用 Spring Boot 管理的依赖项,例如 Phil Webb 上面列出的那些 Jackson 模块。 (参见 Spring Boot 参考手册 > 13. 构建系统 > 13.3 Gradle)。
      猜你喜欢
      • 2020-10-01
      • 1970-01-01
      • 2021-04-13
      • 2018-05-21
      • 2020-10-23
      • 2020-08-06
      • 2019-09-19
      • 2023-04-11
      • 1970-01-01
      相关资源
      最近更新 更多