package com.fasterxml.jackson.databind.annotation does not exist 错误通常因缺少 jackson-databind 依赖引起——该模块不仅提供数据绑定能力,还包含 com.fasterxml.jackson.databind.annotation 包下的核心注解(如 @JsonDeserialize、@JsonSerialize 等),仅引入 jackson-annotations 不足以支持此类引用。
`package com.fasterxml.jackson.databind.annotation does not exist` 错误通常因缺少 `jackson-databind` 依赖引起——该模块不仅提供数据绑定能力,还包含 `com.fasterxml.jackson.databind.annotation` 包下的核心注解(如 `@jsondeserialize`、`@jsonserialize` 等),仅引入 `jackson-annotations` 不足以支持此类引用。
问题根源分析
com.fasterxml.jackson.databind.annotation 并不属于 jackson-annotations 模块(其路径为 com.fasterxml.jackson.annotation),而是由 jackson-databind 模块提供。该模块依赖 jackson-core 和 jackson-annotations,并在此基础上扩展了序列化/反序列化逻辑及配套注解。因此,即使已声明 jackson-annotations,若未引入 jackson-databind,编译器仍无法解析 databind.annotation 下的类,直接报 package does not exist。
正确的 Maven 配置方式
✅ 推荐方案:使用 Spring Boot 默认版本(无显式版本号)
若项目基于 Spring Boot(尤其是继承 spring-boot-starter-parent),应省略
<dependencies><!-- 提供 @JsonProperty, @JsonIgnore 等基础注解 --><dependency><groupid>com.fasterxml.jackson.core</groupid><artifactid>jackson-annotations</artifactid></dependency><!-- 必需!提供 ObjectMapper、@JsonDeserialize、@JsonSerialize 及 databind.annotation 包 --><dependency><groupid>com.fasterxml.jackson.core</groupid><artifactid>jackson-databind</artifactid></dependency></dependencies>
? 注意:jackson-databind 会自动传递依赖 jackson-core 和 jackson-annotations,但显式声明二者可提升代码可读性与 IDE 支持。
✅ 自定义 Jackson 版本时的写法
如确需锁定特定版本(例如 2.10.0),应在
<properties><jackson.version>2.10.0</jackson.version></properties><dependencies><dependency><groupid>com.fasterxml.jackson.core</groupid><artifactid>jackson-annotations</artifactid><version>${jackson.version}</version></dependency><dependency><groupid>com.fasterxml.jackson.core</groupid><artifactid>jackson-core</artifactid><version>${jackson.version}</version></dependency><dependency><groupid>com.fasterxml.jackson.core</groupid><artifactid>jackson-databind</artifactid><version>${jackson.version}</version></dependency></dependencies>
⚠️ 不推荐仅用 jackson-bom + import scope 而不引入 jackson-databind —— jackson-bom 仅声明版本约束,不会自动引入任何实际依赖,仍需手动声明具体 artifact。
验证与排查步骤
- 执行 mvn dependency:tree | grep jackson,确认 jackson-databind 是否出现在依赖树中;
- 检查 IDE 是否已刷新 Maven 项目(IntelliJ:右键项目 → Maven → Reload;Eclipse:右键 → Maven → Update Project);
- 清理本地仓库缓存(可选):mvn clean install -U 或删除 ~/.m2/repository/com/fasterxml/jackson/core/ 对应目录后重试。
总结
- com.fasterxml.jackson.databind.annotation 属于 jackson-databind,不是 jackson-annotations 的子集;
- 必须显式添加 jackson-databind 依赖,否则编译必败;
- 在 Spring Boot 项目中,优先采用无版本号写法,由父 POM 保障兼容性;
- 版本自定义场景下,确保 jackson-annotations、jackson-core、jackson-databind 三者版本严格一致。
完成配置后,再次执行 mvn clean install,该错误将彻底消失。











