Gradle转Maven后Jackson-databind依赖不生效无法引入相关类
问题排查与解决指导
配置错误点
dependencyManagement节点仅用于统一声明依赖版本,不会实际将依赖引入项目,仅在该节点下配置了jackson-databind的版本,未在外层dependencies节点中添加该依赖的引入声明。- 当前
dependencies节点中引入的com.fasterxml:jackson-xml-databind:0.6.2为已停止维护的过时组件,和目标com.fasterxml.jackson.core:jackson-databind不属于同一系列,版本也完全不匹配。
修复方案
调整pom.xml中的dependencies节点配置如下:
<dependencies> <!-- 引入jackson-databind,版本自动继承dependencyManagement中声明的jackson.version --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <!-- 若需要XML序列化能力,添加以下依赖,无需则可删除 --> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>${jackson.version}</version> </dependency> <!-- junit依赖添加test范围,避免打包到生产产物 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> </dependencies>
验证步骤
- 保存pom.xml后触发Maven重新加载,IDEA可点击Maven面板的刷新按钮,命令行可执行
mvn clean compile - 尝试引入Jackson核心类
import com.fasterxml.jackson.databind.ObjectMapper;确认是否可正常识别 - 若仍存在识别问题,删除本地Maven仓库下的
~/.m2/repository/com/fasterxml/jackson目录,重新触发依赖下载即可。
内容的提问来源于stack exchange,提问作者Pawlinho
相关产品推荐
相关产品推荐

