偶然发现maven-aggregation-quickstart项目,与我曾写的一个SpringBoot WEB脚手架项目类似,于是想着将两者结合了一下。
在构建高质量的 Java 项目(尤其是编写中间件、SDK 或数据层类库)时,我们往往遵循一个黄金法则:关注点分离。最典型的实践就是将 接口定义/数据模型(API) 与 底层实现/数据访问(Repository) 物理隔离开来。
这样做的好处显而易见:
- 解耦:外部调用方只需引入轻量级的
api模块,无需依赖笨重的实现包。 - 清晰:契约与细节界限分明。
然而,手动为每个组件去创建父工程,再分别配置 api 和 repository 两个子模块,处理繁琐的 Parent 继承和依赖关系,实在是一个枯燥的过程。
今天推荐的 Maven Aggregation Quickstart,正是为了解决这一特定场景而生的极简效率工具。
项目定位
不同于那些大而全的“万能生成器”,Maven Aggregation Quickstart 走的是**“约定优于配置”**的路线。它专注于一种特定的、高频使用的工程结构——即 API + Repository 的双模块架构。
- 项目地址: github.com/bus-mem/mav…
它能为你做什么?
当你需要开发一个新的数据组件或微服务模块时,使用该工具,它会在几秒钟内为你生成一个标准的 Maven SprigBoot多模块工程,自动构建如下结构:
my-project-root (父工程)
├── api (子模块:存放接口、DTO、枚举)
├── repository (子模块:存放实现逻辑、数据访问层)
└── pom.xml (父POM:自动管理模块聚合与版本)
核心优势
专注且克制 它没有复杂的选项让你眼花缭乱。它默认你就是为了创建这种经典的“接口与存储分离”的结构。输入 GroupId 和 ArtifactId,剩下的交给它。
自动化的依赖编排 工具不仅创建目录,还会自动处理 pom.xml:
父工程:自动添加 聚合两个子模块。
子模块:自动继承父工程 。
模块间依赖:工具帮你省去了手动编写 的步骤。
规范化落地 对于团队而言,这不仅是省时间,更是统一规范。强制将 api 和 repository 分开,从物理结构上避免了开发人员将实现类泄露给外部调用方,强制代码结构保持整洁。
适用场景
开发公共 SDK / 中间件:需要向外提供轻量的 API 包,同时内部封装复杂的逻辑。
微服务的数据层(Data Layer):将数据访问层独立维护,API 层用于 Feign Client 定义。
DDD(领域驱动设计)的基础实践:快速搭建基础设施层(Repository)与领域层/接口层分离的骨架。
立即体验: github.com/bus-mem/mav…
注:如果您觉得好用,别忘了去 GitHub 上给作者点一个Star支持一下!