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




