使用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
相关产品推荐
相关产品推荐

