Jakarta Servlet API 6.0.0许可证扫描异常,求适配JDK11和SpringBoot2.6.14的方案
适配方案与版本建议
核心冲突原因
Spring Boot 2.6.14 基于 Jakarta EE 9 规范,仅支持 Jakarta Servlet 5.0.x 版本;你引入的 jakarta.servlet-api:6.0.0 属于 Jakarta EE 10 规范,需搭配 Spring Boot 3.x(要求 JDK 17+)才能兼容,和当前的 JDK 11、Spring Boot 2.6.14 版本不匹配,这是引发许可证扫描异常的核心问题。
具体解决步骤
- 替换
jakarta.servlet-api为适配版本:<dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> <scope>provided</scope> </dependency> - 更稳妥的方式是依赖 Spring Boot starter-web 自动管理的版本,避免手动指定导致的冲突:
(starter-web 会自动引入与 Spring Boot 2.6.14 匹配的 jakarta.servlet-api,无需单独添加依赖)<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
其他可选方向
- 若必须使用 Jakarta Servlet 6.0.x,需升级到 Spring Boot 3.x 版本,但同时要将 JDK 升级到 17 及以上,这会涉及项目整体版本的大幅调整,需提前评估成本。
- 若替换版本后扫描仍异常,可检查扫描工具的规则配置,确认是否对 jakarta.servlet-api 5.0.0 的许可证有特殊限制,或清理本地 Maven 仓库后重新拉取依赖再执行扫描。
内容的提问来源于stack exchange,提问作者surjitkv
相关产品推荐
相关产品推荐

