code-generator-maven-plugin(Maven代码生成器插件)

简介

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

code-generator-maven-plugin更多相关信息请参考:

Gitee:      code-generator-maven-plugin

Github:    code-generator-maven-plugin

 

如何使用?

在标准 SpringBoot 项目,以开发工具 Intellij IDEA 为例:在 Maven 中引入 code-generator-maven-plugin 插件

<plugin>
   <groupId>com.github.mengweijin</groupId>
   <artifactId>code-generator-maven-plugin</artifactId>
   <version>Latest Version</version>
</plugin>

在Intellij IDEA 的 Maven 模块中找到下面图中的 code-generator 插件,然后双击对应的插件命令即可。

code-generator:code 插件需要在 maven 运行窗口根据提示输入数据库表名称,模块名称。并且执行前需要指定用户自定义模板的位置,参数参考文章下面的表格。

代码生成位置:在当前工程的 target/code-generator/ 目录下。

至此,初步使用完成。

全部配置使用(以 code-generator:code 插件为例)

<plugin>
   <groupId>com.github.mengweijin</groupId>
   <artifactId>code-generator-maven-plugin</artifactId>
   <version>Latest Version</version>
   <configuration>
      <config>
         <baseEntity>com.github.mengweijin.vitality.framework.mybatis.entity.BaseEntity</baseEntity>
         <templateDir>generator/vue</templateDir> 
         <tablePrefix>vtl_</tablePrefix>
         <author>mengweijin</author>
         <dbInfo>
            <username>root</username>
            <password>root</password>
            <url>jdbc:mysql://localhost:3306/vitality</url>
         </dbInfo>
      </config>
   </configuration>
</plugin>

参数配置说明

参数名称是否必填配置示例说明
authormengweijin类注释上面@author的值。 默认:取当前电脑的用户名
dbInfo.usernameroot数据库连接信息。如果是标准的SpringBoot工程,可以省略,会自动读取application.yml/yaml/properties文件。
dbInfo.passwordroot同上
dbInfo.urljdbc:mysql://192.168.83.128:3306/test同上。
tablePrefixsys_, rlt_要生成代码对应的数据库表名称的前缀。配置后,生成的entity类就不会带有表前缀了。如:User, UserRole。如果不配置,生成的entity类就会带有表前缀。如:SysUser, RltUserRole。多个表名称前缀使用逗号分隔
baseEntitycom.github.mengweijin.vitality.BaseEntity生成的entity类继承的父类
templateDirgenerator/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 中用到的参数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值