Spring Boot CQRS示例执行mvn clean install失败问题排查与修复
Spring Boot CQRS项目构建报错修复方案
问题现象
在cqrs-example\bank-account目录执行命令 mvn clean install 时,出现编译失败:
[INFO] cqrs.core .......................................... SUCCESS [ 7.474 s] [INFO] account.common ..................................... FAILURE [ 2.248 s] [INFO] account.cmd ........................................ SKIPPED [INFO] account.query ...................................... SKIPPED [INFO] bank-account ....................................... SKIPPED [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project account.common: Compilation failure [ERROR] /C:/Users/Username/IdeaProjects/cqrs-example/bank-account/account.common/src/main/java/com/bankcqrsexample/account/common/events/FundsDepositedEvent.java:[3,44] package com.bankcqrsexample.cqrs.core.events does not exist [ERROR] ... (其余找不到BaseEvent类的报错信息省略)
单独在cqrs-example\cqrs.core\cqrs.core目录执行 mvn clean install 时,构建可成功完成。
问题原因
account-common模块无法正确引用到cqrs-core模块的编译产物,核心原因包括:
- account-common的pom.xml未正确配置cqrs-core依赖
- 多模块构建顺序或结构配置错误,导致account-common构建时,cqrs-core的产物未被正确识别
- 类的import路径与cqrs-core实际包路径不匹配
修复步骤
- 检查account-common的依赖配置
打开account-common模块的pom.xml,确认已正确引入cqrs-core依赖,确保groupId、artifactId、version与cqrs-core的pom完全一致:
<dependency> <groupId>com.bankcqrsexample</groupId> <artifactId>cqrs-core</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
- 调整多模块构建入口
不要仅在bank-account目录执行构建,切换到项目根目录cqrs-example下执行:
mvn clean install
这样Maven会按照依赖顺序构建,先完成cqrs-core的构建并安装到本地仓库,再构建依赖它的account-common等模块。
- 验证import路径正确性
检查account-common中事件类的import语句,比如FundsDepositedEvent.java中的导入:
import com.bankcqrsexample.cqrs.core.events.BaseEvent;
确保该路径与cqrs-core中BaseEvent类的实际包路径完全一致。
- 确认父模块结构(可选)
如果项目根目录没有父pom.xml,补充父pom来管理所有子模块(cqrs-core、bank-account及其子模块),保证模块间依赖关系被Maven正确识别。父pom核心配置示例:
<modules> <module>cqrs-core</module> <module>bank-account</module> </modules>
内容的提问来源于stack exchange,提问作者Sercan Noyan Germiyanoğlu
相关产品推荐
相关产品推荐

