快速生成标准化分层多模块 Java 项目的 Maven 原型,纯架构骨架无内置依赖,职责解耦,贴合企业级开发规范
- 规范分层架构:严格遵循 Controller → Service → Repository → Model 分层设计,贴合企业开发习惯
- 标准化多模块:解耦拆分为 common/controller/model/repository/service,模块职责单一、边界清晰
- 统一依赖管理:父 POM 预留集中管控依赖版本能力,从根源避免版本冲突,可按需灵活扩展
- 一键快速生成:通过 mvn archetype:generate 命令,无需手动搭建目录,直接生成标准化项目骨架
- 无侵入扩展:纯架构原型不内置任何技术栈依赖,可自由集成 Spring Boot/MyBatis 等任意框架
- 分支化扩展:基础主干为纯架构骨架,技术栈集成版本(如 Spring Boot)将在后续分支中提供
- 安装原型到本地 Maven 仓库
# 克隆本项目到本地
git clone https://github.com/yidongdematong/layered-multi-module-archetype.git
# 进入项目根目录
cd layered-multi-module-archetype
# 安装原型到本地(自动编译并注册到Maven本地仓库)
mvn clean install
- 一键生成分层多模块项目 执行以下命令,按控制台提示输入自定义项目 GAV 参数(groupId/artifactId/version),即可生成标准化项目骨架:
# 完整参数版(显式指定所有参数)
mvn archetype:generate \
-DarchetypeGroupId=io.github.bobby \ # 你的原型组ID
-DarchetypeArtifactId=layered-multi-module-archetype \ # 你的原型构件ID
-DarchetypeVersion=1.0.0-SNAPSHOT \ # 你的原型版本
-DgroupId=com.bobby \ # 项目组ID(必填)
-DartifactId=bobbyDemo \ # 父项目名称(必填)
-Dversion=1.0.0 \ # 项目版本(可选,默认1.0-SNAPSHOT)
-Dpackage=com.bobby \ # 基础包名(可选,默认=${groupId}.${artifactId})
-DrootArtifactId=bobbyDemo \ # 子模块前缀(可选,默认=${artifactId})
-DjavaVersion=17 \ # Java版本(可选,默认8)
-DcompilerPluginVersion=3.11.0 \ # maven-compiler-plugin版本(可选)
-DinteractiveMode=false \ # 非交互模式,跳过确认
-DarchetypeCatalog=local # 仅从本地仓库查找原型
生成的项目遵循约定优于配置原则,目录结构标准化,子模块自动拼接根项目 ArtifactId,纯架构无内置依赖:
your-project/ # 自定义的根项目名(执行命令时输入的artifactId)
├── pom.xml # 父POM:统一管理依赖、版本、插件,所有子模块继承,预留依赖管控能力
├── your-project-common/ # 通用工具模块:工具类、全局常量、通用枚举、全局异常定义、公共工具方法
├── your-project-model/ # 数据模型模块:实体类(Entity)、请求DTO、响应VO、数据传输对象等
├── your-project-repository/ # 数据访问模块:数据访问层接口与实现(DAO/Mapper/Repository)
├── your-project-service/ # 业务逻辑模块:业务服务接口、接口实现类,封装核心业务逻辑
└── your-project-controller/ # 接口层模块:对外暴露的API接口(Controller)、接口参数校验、请求转发
本原型主干为纯架构骨架,仅提供标准化的分层多模块目录结构和统一的 Maven 依赖管理规范,不内置任何第三方技术栈依赖(如 Spring Boot、MyBatis、Logback 等),最大程度保证扩展性,适配不同技术栈选型需求。
按需引入依赖:可直接在父 POM 或各子模块 POM 中,灵活引入所需技术栈依赖,无任何侵入性 分支化集成:后续将在项目不同分支中,提供已集成主流技术栈的版本(如spring-boot分支),开箱即用 自定义扩展:基于标准化结构,可自由新增模块、调整分层,完全适配个性化业务需求
本项目采用Apache License 2.0 开源许可证,允许商业使用、修改、分发,仅需保留版权声明。
- 最新稳定版:
1.0.1-SNAPSHOT - 最近更新:新增Java版本动态指定参数
javaVersion(默认8),完善多模块原型属性配置,修复Archetype集成测试缺失属性问题。
完整详细变更日志请查看:CHANGELOG.md 所有正式发布版本:GitHub Releases