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

使用Maven生成H2数据库时文件路径错误问题咨询

问题描述

项目结构如下:

project/
├─ frontend/
├─ backend/
│  ├─ src/main/resources/
│  │  ├─ application.yml

application.yml中的配置内容:

spring:
  datasource:
    url: jdbc:h2:./database
    driver-class-name: org.h2.Driver

执行Maven目标(如mvn clean compile)时,数据库文件生成在project目录下而非backend目录,请问是否需要配置Maven环境以使其识别项目根目录?


原因与解决方案

核心原因

H2数据库URL中的./database是相对当前工作目录的路径。你在project根目录下执行Maven命令时,当前工作目录就是project,所以数据库文件会生成在根目录下,这和Maven环境配置无关。

解决方式

有两种直接可行的处理方案:

  • 方案一:修改数据库路径指向backend模块
    调整application.yml中的H2 URL,明确指定相对于backend模块的路径,示例:

    spring:
      datasource:
        url: jdbc:h2:./backend/database
        driver-class-name: org.h2.Driver
    

    如果希望数据库文件存放在backend的target目录(避免提交到版本控制),可以改为:

    spring:
      datasource:
        url: jdbc:h2:./backend/target/database
        driver-class-name: org.h2.Driver
    
  • 方案二:进入backend模块执行Maven命令
    切换到project/backend目录后再执行Maven命令,示例:

    cd backend
    mvn clean compile
    

    此时当前工作目录为backend,数据库文件会自动生成在该目录下。

内容的提问来源于stack exchange,提问作者andi2.2

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:37:14