我基于maven-aggregation-quickstart插件项目做了一些小改动

20 阅读2分钟

偶然发现maven-aggregation-quickstart项目,与我曾写的一个SpringBoot WEB脚手架项目类似,于是想着将两者结合了一下。

在构建高质量的 Java 项目(尤其是编写中间件、SDK 或数据层类库)时,我们往往遵循一个黄金法则:关注点分离。最典型的实践就是将 接口定义/数据模型(API)底层实现/数据访问(Repository) 物理隔离开来。

这样做的好处显而易见:

  • 解耦:外部调用方只需引入轻量级的 api 模块,无需依赖笨重的实现包。
  • 清晰:契约与细节界限分明。

然而,手动为每个组件去创建父工程,再分别配置 apirepository 两个子模块,处理繁琐的 Parent 继承和依赖关系,实在是一个枯燥的过程。

今天推荐的 Maven Aggregation Quickstart,正是为了解决这一特定场景而生的极简效率工具

项目定位

不同于那些大而全的“万能生成器”,Maven Aggregation Quickstart 走的是**“约定优于配置”**的路线。它专注于一种特定的、高频使用的工程结构——即 API + Repository 的双模块架构。

它能为你做什么?

当你需要开发一个新的数据组件或微服务模块时,使用该工具,它会在几秒钟内为你生成一个标准的 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支持一下!