k55k32 / simple-codegen

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

simple-codegen 代码生成器

基于 freemarker的代码生成器, 主要针对后端管理平台一些通用的类生成。原理是将已编写好的模板,通过传入参数, 利用freemarker渲染成文件,然后生成到指定目录。

插件配置

  1. pom.xml 添加插件, 配置好生成参数, 然后执行 mvn simple-codegen:codegen
<plugin>
    <groupId>com.diamondfsd</groupId>
    <artifactId>simple-codegen</artifactId>
    <version>RELEASE</version>
    <configuration>
        <!--模板路径-->
        <templatePath>src/main/resources/code-template</templatePath>
        <!--目标路径-->
        <sourcePath>src/main/java/</sourcePath>
        <!--pojo参数,传入 表名/Model名称,主键类型-->
        <pojos>
            <pojo>table_name,Integer</pojo>
            <pojo>ModelName,Long</pojo>
        </pojos>
        <!--自定义参数-->
        <params>
            <youSelfKey>youSelfValue</youSelfKey>
            <youSelfKey2>youSelfValue2</youSelfKey2>
        </params>
    </configuration>
</plugin>

插件配置说明

  • templatePath: 模板文件夹路径,默认src/main/resources/code-template
  • sourcePath: 生成源码输出基础目录, 默认 src/main/java/
  • pojos: 预置的参数,接受一个Model名称和Java类型作为参数,每一个pojo会生成一遍所有模板内的内容
<pojos>
    <pojo>table_name,Integer</pojo>
    <pojo>ModelName,Long</pojo>
</pojos>
  • params: 自定义参数,可以加一些自定义参数在模板内使用
<params>
    <selfKey>xxx</selfKey>
    <selfKey2>xx2</selfKey>
</params>
${params.selfKey}
${params.selfKey2}

模板范例

模板以 !# 开头,后面是生成好文件的目标路径和名称,会自动加上 sourcePath 配置, 因为是ftl模板,可以用freemark语法,大部分情况情况下,我们只需要用到${xxx}来替换字符串

模板内参数在插件的 pojos内配置,可以配置多条,多条会生成多次

默认可用参数如下:

  1. name: 模型类名称, table_name -> TableName, ModelName -> ModelName
  2. nameCamelCase: 模型名称驼峰, table_name -> tableName, ModelName -> modelName
  3. nameSplit: 模型名称使用-分割, table_name -> table-name, ModelName -> model-name
  4. primaryKeyType: 主键类型, Any -> Any, any -> any
  5. packageName: 包名
  6. packagePath: 包路径(如果指定了包名会自动生成包路径,该参数可以在模板头的路径位置使用)
!# ${packagePath}/${name}.java
package ${packageName}.model;

import ${packageName}.jooq.tables.pojos.${name}Pojo;

public class ${name} extends ${name}Pojo {
}

About


Languages

Language:Java 89.6%Language:FreeMarker 10.4%