# g2rain-generator-maven-plugin(Java 代码生成器插件)
g2rain-generator-maven-plugin 是基于 MyBatis Generator 与 FreeMarker 的 Java 代码生成 Maven 插件,可根据数据库表结构一键生成标准化 CRUD 代码(常见包含 API / DTO / VO / Service / Controller / DAO / PO / Mapper XML 等分层)。
插件强调跨项目协作中的“读写分离”实践:默认生成查询类接口;新增/更新/删除建议由业务方通过事件/消息或其它服务独立完成,减少跨项目耦合副作用。
# 功能特性
- 一键生成:通过 Maven 命令自动生成整套 CRUD 分层代码
- 多层分层:支持 API、Controller、Service、DAO、PO、DTO、VO 等完整结构
- 模板驱动:基于 FreeMarker 模板,可按需定制生成内容
- 多种配置方式:配置文件、命令行参数、交互式输入
- 多表生成:一次生成多个表(逗号分隔)
- 可控覆盖:支持是否覆盖已存在的文件
- 标准结构:默认生成符合 Spring Boot 项目习惯的包与模块结构
# 典型生成结构(示例)
以 demo-project、基础包 com.g2rain.demo、多模块结构为例:
demo-project/
├── demo-project-api/ # api/ dto/ vo/
├── demo-project-biz/ # controller/ service/ dao/ converter/ ...
└── demo-project-biz/ # mybatis/mapper/ 位置的 Mapper XML
# 快速开始
# 1. 引入插件
业务项目(建议父工程)pom.xml 添加:
<build>
<plugins>
<plugin>
<groupId>com.g2rain</groupId>
<artifactId>g2rain-generator-maven-plugin</artifactId>
<version>1.0.1</version>
</plugin>
</plugins>
</build>
# 2. 准备 codegen.properties(推荐)
在项目根目录创建 codegen.properties(示例):
database.url=jdbc:mysql://localhost:3306/my_database?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
database.driver=com.mysql.cj.jdbc.Driver
database.username=root
database.password=your_password
project.basePackage=com.example.demo
database.tables=user,order_info
tables.overwrite=false
# 3. 执行生成
在包含 pom.xml 的目录执行:
mvn com.g2rain:g2rain-generator-maven-plugin:1.0.1:generate
也可以直接传参(覆盖配置文件):
mvn com.g2rain:g2rain-generator-maven-plugin:1.0.1:generate \
-Dproject.basePackage=com.example.demo \
-Ddatabase.url=jdbc:mysql://... \
-Ddatabase.driver=com.mysql.cj.jdbc.Driver \
-Ddatabase.username=root \
-Ddatabase.password=123456 \
-Ddatabase.tables=user,order_info \
-Dtables.overwrite=true