# code-generator-maven-plugin **Repository Path**: gaowy/code-generator-maven-plugin ## Basic Information - **Project Name**: code-generator-maven-plugin - **Description**: 基于数据库表生成Controller, Service, entity, Dao CRUD代码的maven插件。支持 Mybatis, Mybatis-Plus, JPA。还支持生成 Dockerfile 文件以及相关 Docker 脚本:DockerImageBuild.bat, DockerImageBuildRun.bat, DockerImageDelete.bat - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://mengweijin.gitee.io/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2021-11-03 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # code-generator-maven-plugin Language: [English](README.md)

gitee star github star

## 简介 code-generator-maven-plugin 是一个基于baomidou mybatis-plus-generator实现的,在 Maven 项目中生成代码的 Maven 插件。主要包括: - code-generator:**MyBatis**:基于数据库表生成 Mybatis 下的 Controller.java, Service.java, Mapper.java, mapper.xml, Entity.java 层CRUD代码; - code-generator:**MyBatis-Plus**:基于数据库表生成 Mybatis-plus 下的 Controller.java, Service.java, Mapper.java, mapper.xml, Entity.java 层CRUD代码; - code-generator:**JPA**:基于数据库表生成 Jpa 下的 Controller.java, Service.java, Repository.java, Entity.java 层CRUD代码; - code-generator:**Dockerfile**:生成当前项目的 Dockerfile 文件,以及相关脚本:DockerImageBuild.bat, DockerImageBuildRun.bat, DockerImageDelete.bat - code-generator:**Docker-Build**:基于本地安装的 Docker 来构建 docker image - code-generator:**Docker-Deploy**:基于本地安装的 Docker 来构建 docker image 并部署 docker 容器 - code-generator:**Docker-Delete**:基于本地安装的 Docker 来删除已经部署的 docker 容器和 docker image - 理论可以扩展任意前后台跟数据库表有关系的技术:如:Vue, Element-UI 代码等。 - 理论支持所有支持JDBC连接的数据库:例如:DB2, DM, H2, Mariadb, MySQL, Oracle, Postgre, Sqlite, SQLServer ## 如何使用? 在Intellij IDEA 的 Maven 模块中找到下面图中的 code-generator 插件,然后双击对应的插件命令即可。 ![image](docs/image/code-generator-maven-plugin.png) **注意** * 默认 Java 代码生成在当前工程的 target/code-generator/ 目录下。 * 默认包路径为:com.github.mengweijin * 默认 Dockerfile 等文件生成在当前工程的 target 目录下。 ## 生成 java 代码 ### 1. 一般使用 在标准 SpringBoot 项目,以开发工具 Intellij IDEA 为例:在 Maven 中引入 code-generator-maven-plugin 插件 ~~~~xml com.github.mengweijin code-generator-maven-plugin Latest Version sys_user, sys_role com.github.mengweijin.quickboot.mybatis.BaseEntity ~~~~ ### 2. 全部配置使用 ~~~~xml com.github.mengweijin code-generator-maven-plugin Latest Version com.github.mengweijin mengweijin root root jdbc:mysql://192.168.83.128:3306/mwj_cms sys_user, rlt_user_role sys_, rlt_ com.github.mengweijin.BaseEntity true ~~~~ ## 参数配置说明 |参数名称|是否必填|配置示例|说明| |---:|:---|:---|:---| |outputPackage|否|com.github.mengweijin|代码生成的包路径。 默认:com.github.mengweijin| |author|否|mengweijin|类注释上面@author的值。 默认:取当前电脑的用户名| |dbInfo.username|否|root|数据库连接信息。如果是标准的SpringBoot工程,可以省略,会自动读取application.yml/yaml/properties文件。| |dbInfo.password|否|root|同上| |dbInfo.url|否|jdbc:mysql://192.168.83.128:3306/test|同上。注意:如果是多模块项目使用 H2 数据库生成代码时,要注意 URL 的书写方式,详情参考**常见问题**章节| |tables|否|sys_user, rlt_user_role|要生成代码对应的数据库表名称。如果不配置,会生成数据库中所有的表。部分数据库对表名称大小写敏感,此时需要配置的表名称跟数据库中的完全一致。多个表名称使用英文逗号分隔| |tablePrefix|否|sys_, rlt_|要生成代码对应的数据库表名称的前缀。配置后,生成的entity类就不会带有表前缀了。如:User, UserRole。如果不配置,生成的entity类就会带有表前缀。如:SysUser, RltUserRole。多个表名称前缀使用英文逗号分隔| |superEntityClass|否|com.github.mengweijin.quickboot.mybatis.BaseEntity|生成的entity类继承的父类| |lombokModel|否|true|生成的entity是否启用lombok方式。不配置或者配置为true: 启用lombok方式;配置为false: 不启用lombok方式,则生成的entity中包含getter/setter/toString方法。| ## 常见问题 1. 数据库表存在,但没有生成代码文件,程序也没有报错。 * 配置数据库表名称(tables)一定要跟数据库中的表名称大小写完全一致。例如H2数据库用脚本创建表时的脚本中写的名称是小写,但真实生成的表名称可能是大写的,因此这里需要配置为大写的表名称。 2. 多模块项目使用 H2 数据库生成代码时,提示“表\[table_name]在数据库中不存在!!!” 的问题。 * 项目结构为多模块时,项目结构如下: ````txt - project-parent - h2 - test.mv.db - project-child - src - main - java - resources - pom.xml(code-generator-maven-plugin 在这里配置的) - pom.xml(project-parent 的) ```` * 可以发现,/h2/test.mv.db 文件在整个项目的根路径下 * 我们程序中配置的 url 为 jdbc:h2:file:./h2/test;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE;MODE=MYSQL * 当使用 code-generator-maven-plugin 时,就不能配置上面的 url 了, 因为多模块项目中的插件的根路径为 project-child 的,并不是 /h2/test.mv.db 文件所在的位置 * 此时我们可以使用以下两种方式来手动指定: * 使用绝对路径:jdbc:h2:file:C:/Source/code/gitee/quickboot/h2/test;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE;MODE=MYSQL * 使用相对路径(多加了一层 ../ 符号):jdbc:h2:file:./../h2/test;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE;MODE=MYSQL * 注意:只用多模块项目才需要这样指定,单个项目不受影响。 ## 期望 欢迎您提出更好的意见,帮助完善这个小插件. ## 贡献 欢迎您贡献代码,让更多的人多点时间陪陪关心的人。