You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Spring 5.x下如何通过Maven依赖自动获取更新的Jackson传递依赖?

如何在Spring 5.x中自动管理Jackson依赖版本

当然有啦!在Spring生态体系里,有两种官方推荐的方式(完全符合你要的优先Spring相关Jar包的要求),能帮你摆脱手动维护Jackson版本的麻烦,自动获取适配Spring 5.x的兼容版本:

1. 使用Spring Boot父POM(最推荐,适用于Spring Boot项目)

Spring Boot的父POM已经帮我们预定义了大量兼容第三方库的版本,包括Jackson在内。只要让项目继承Spring Boot的父POM,后续引入Jackson依赖时就不用手动指定版本了,版本会自动继承父POM里的配置;升级时只需要修改父POM的版本即可,不用逐个调整Jackson的版本号。

<!-- 先在pom.xml中添加Spring Boot父POM -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>你的Spring Boot版本(比如2.7.15,适配Spring 5.x)</version>
    <relativePath/> <!-- 从Maven仓库自动获取 -->
</parent>

<!-- 引入Jackson依赖时无需指定version -->
<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
    </dependency>
</dependencies>

2. 使用Spring Framework BOM(适用于纯Spring 5.x项目)

如果你的项目只是纯Spring 5.x应用,不依赖Spring Boot,可以通过导入Spring Framework的BOM(物料清单)来统一管理依赖版本,其中就包含了适配Spring 5.x的Jackson版本。

<!-- 在pom.xml的dependencyManagement中导入Spring BOM -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-framework-bom</artifactId>
            <version>5.3.29</version> <!-- 你的Spring 5.x具体版本 -->
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<!-- 引入Jackson依赖时无需指定version -->
<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
    </dependency>
</dependencies>

补充说明

这两种方式的核心逻辑是:通过父POM或BOM集中管理所有依赖的版本号,你在<dependencies>里引入依赖时不需要写<version>,Maven会自动使用BOM/父POM中定义的版本。后续要升级Jackson版本的话,只需要升级父POM或者Spring BOM的版本即可(只要新版本的Spring兼容对应的Jackson版本),不用逐个修改Jackson依赖的版本号,非常省心。

内容的提问来源于stack exchange,提问作者soumitra chatterjee

火山引擎 最新活动