You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加H2数据库依赖时Maven构建失败及驱动加载异常问题求助

解决Spring Boot添加H2依赖后的构建错误问题

我来帮你一步步排查和解决这个问题:

问题根源分析

  1. 你第一次把H2放到dependencies后出现的大量依赖解析错误(比如无法读取H2的artifact descriptor、其他依赖无法解析),大概率是Maven本地仓库缓存损坏或者依赖版本拉取失败引发的连锁反应。
  2. 把H2移到dependencyManagement后出现Cannot load driver class: org.h2.Driver是正常情况——因为dependencyManagement只负责管理依赖的版本规则,不会主动将依赖引入项目,你的项目里根本没有H2的jar包,自然找不到驱动类。

具体解决方案

1. 正确引入H2依赖

把H2放回dependencies节点,如果只是在测试环境使用H2(比如单元测试、集成测试),建议加上test scope,避免影响生产环境:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>test</scope> <!-- 仅测试环境使用,按需调整 -->
</dependency>

注:Spring Boot的父pom已经为H2管理了兼容版本,不需要手动指定版本,避免版本冲突。

2. 清理Maven缓存并强制更新依赖

执行以下Maven命令,清理本地缓存并重新拉取所有依赖:

mvn clean install -U
  • -U参数会强制Maven更新快照依赖和远程仓库的元数据,解决依赖拉取不完整的问题。

3. 修复Azure相关依赖的版本冲突

你的pom.xml里手动指定了多个Azure依赖的版本,但同时引入了azure-spring-boot-bom来统一管理版本,这会导致版本冲突,建议:

  • 删除properties中这些手动指定的Azure相关版本:
    <!-- 删掉以下内容 -->
    <azure-identity.version>1.5.0</azure.version>
    <spring-cloud-azure-starter-keyvault-secrets.version>4.0.0</spring-cloud-azure-starter-keyvault-secrets.version>
    <azure-core-serializer-json-jackson.version>1.2.15</azure-core-serializer-json-jackson.version>
    
  • 让azure-spring-boot-bom自动管理所有Azure依赖的版本,这样能保证和Spring Boot 2.6.6的兼容性。

4. 手动清理本地仓库(如果上述步骤无效)

如果Maven命令还是无法拉取H2依赖,可能是本地仓库的H2缓存文件损坏:

  1. 找到你的Maven本地仓库路径(默认是~/.m2/repository)
  2. 删除com/h2database/h2整个目录
  3. 再次执行mvn clean install -U重新拉取H2依赖

验证解决方案

执行完上述步骤后,重新构建项目:

mvn compile

如果构建成功,说明问题已经解决;如果还有错误,可以检查错误日志中具体的依赖冲突信息,针对性调整。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 14:17:45