# code-generator-maven-plugin
**Repository Path**: mengweijin/code-generator-maven-plugin
## Basic Information
- **Project Name**: code-generator-maven-plugin
- **Description**: 在 Maven 项目中生成代码的 Maven 插件
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 6
- **Forks**: 6
- **Created**: 2020-12-17
- **Last Updated**: 2024-12-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# code-generator-maven-plugin
Language: [English](README.md)
## 简介
code-generator-maven-plugin 在 Maven 项目中生成代码的 Maven 插件。主要包括:
- code-generator:**code**:基于数据库表,自定义 velocity 代码模板,生成 CRUD 或前端代码;
- code-generator:**mybatis**:基于数据库表,使用插件默认 MyBatis 模板生成 CRUD 代码;
- code-generator:**mybatis-plus**:基于数据库表,使用插件默认 MyBatis-Plus 模板生成 CRUD 代码;
- code-generator:**jpa**:基于数据库表,使用插件默认 JPA 模板生成 CRUD 代码;
- code-generator:**script**:生成脚本。包括:Dockerfile, app.sh, app.bat 等脚本。
备注:
- code-generator:**code** 插件理论可以生成任意前后台跟数据库表有关系的代码:如:Vue, Element-UI 代码等。
- 理论支持所有支持JDBC连接的数据库:例如:DB2, DM, H2, Mariadb, MySQL, Oracle, Postgre, Sqlite, SQLServer
## 如何使用?
在标准 SpringBoot 项目,以开发工具 Intellij IDEA 为例:在 Maven 中引入 code-generator-maven-plugin 插件
~~~~xml
com.github.mengweijin
code-generator-maven-plugin
Latest Version
~~~~
在Intellij IDEA 的 Maven 模块中找到下面图中的 code-generator 插件,然后双击对应的插件命令即可。
code-generator:**code** 插件需要在 maven 运行窗口根据提示输入数据库表名称,模块名称。并且执行前需要指定用户自定义模板的位置,参数参考文章下面的表格。

代码生成位置:在当前工程的 target/code-generator/ 目录下。
至此,初步使用完成。
## 全部配置使用(以 code-generator:code 插件为例)
~~~~xml
com.github.mengweijin
code-generator-maven-plugin
Latest Version
com.github.mengweijin.vitality.framework.mybatis.entity.BaseEntity
generator/vue
vtl_
mengweijin
root
root
jdbc:mysql://localhost:3306/vitality
~~~~
## 参数配置说明
| 参数名称 | 是否必填 | 配置示例 | 说明 |
|----------------:|:-----|:-------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------|
| author | 否 | mengweijin | 类注释上面@author的值。 默认:取当前电脑的用户名 |
| dbInfo.username | 否 | root | 数据库连接信息。如果是标准的SpringBoot工程,可以省略,会自动读取application.yml/yaml/properties文件。 |
| dbInfo.password | 否 | root | 同上 |
| dbInfo.url | 否 | jdbc:mysql://192.168.83.128:3306/test | 同上。 |
| tablePrefix | 否 | sys_, rlt_ | 要生成代码对应的数据库表名称的前缀。配置后,生成的entity类就不会带有表前缀了。如:User, UserRole。如果不配置,生成的entity类就会带有表前缀。如:SysUser, RltUserRole。多个表名称前缀使用逗号分隔 |
| baseEntity | 否 | com.github.mengweijin.vitality.framework.mybatis.entity.BaseEntity | 生成的entity类继承的父类 |
| templateDir | 是 | generator/vue | 仅 code-generator:code 插件参数,用户自定义模板相对于项目根目录的位置。 |
## 常见问题
1. H2 数据库中表存在,但没有生成代码。
* H2数据库默认区分表名称大小写,要么保证输入的表名称大小写完全一致,要么第一次创建 H2 数据库表时,jdbc url 参数增加 IGNORECASE=TRUE 参数。
2. 如何自定义生成代码的模板?
* 使用 code-generator:code 插件,并在 pom.xml 中配置 templateDir 参数。
* 模板文件参考 code-generator-maven-plugin 工程下,src\main\resources\templates 目录下的 velocity 模板 *.vm 文件。
* 模板参数参考 ITemplateEngine.java 类中的 getObjectMap 方法或其他 .vm 中用到的参数。
## 期望
欢迎您提出更好的意见,帮助完善这个小插件.
## 贡献
欢迎您贡献代码,让更多的人多点时间陪陪关心的人。