如何确保Spring Boot额外的Jackson模块具有相同的版本?

时间:2014-08-07 14:01:55

标签: jackson spring-boot jackson-modules

Spring Boot已经包含核心杰克逊依赖+其他几个。

如果你是想要添加org.json或jsr-353数据绑定模块,以明确定义这些附加模块的存储。

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

3 个答案:

答案 0 :(得分:8)

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

  • 杰克逊 - 注解
  • 杰克逊核
  • 杰克逊数据绑定
  • 杰克逊 - 数据类型 - 约达
  • 杰克逊 - 数据类型-jsr310

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

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

答案 1 :(得分: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 

答案 2 :(得分:1)

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