跳到主要内容

# 代码生成器插件

盘古代码生成器是基于 Maven 的一个自定义插件。可以方便快捷的以插件的方式安装到任何一个 Maven 模块中去。目前支持生成如下代码。

- MyBatis Plus Mapper.java 映射接口文件
- MyBatis Plus Entity.java 实体文件

建议

根据实践经验，不建议使用 MyBatis Plus 的生成器，更不建议生成 Mybatis Plus 风格的 Service 文件。

## 安装 Maven 插件​

pom.xml

    <plugin>
        <groupId>com.gitee.pulanos.pangu</groupId>
        <artifactId>pangu-framework-generator-maven-plugin</artifactId>
        <version>5.0.6</version>
        <configuration>
            <url>jdbc:mysql://127.0.0.1:3306/pangu-showcases</url>
            <user>root</user>
            <password>root123456</password>
            <tables>user,resource</tables>
            <author>xiongchun</author>
            <entityFilePath>${project.basedir}/src/main/java/com/gitee/pulanos/pangu/showcases/crud/dao/entity</entityFilePath>
            <mapperFilePath>${project.basedir}/src/main/java/com/gitee/pulanos/pangu/showcases/crud/dao/mapper</mapperFilePath>
        </configuration>
    </plugin>

### 插件参数说明​

配置项 | 配置说明
--- | ---
url | 数据库连接地址
user | 数据库用户名
password | 数据库密码
tables | 目标数据库表，多个表用逗号分割
author | 源代码文件的作者签名
entityFilePath | 实体类文件输出路径（根据此路径推导包结构）
mapperFilePath | Mapper 类文件输出路径（根据此路径推导包结构）

提示

- 上表中输出路径参数可以是基于 ${project.basedir} 的相对路径，也可以是绝对路径。
- 微服务开发中实体类文件一般是生成到服务接口包里，与服务消费方共享。（可以在接口包模块安装此插件，或者在服务实现模块将实体类生成路径直接指向接口包）

## 运行Maven插件​

### 方式一​

通过 IDEA 或 Eclipse 等开发工具来执行名为 `pangu` 的 Maven 插件。如下图所示。

### 方式二​

通过 Mavne 脚本执行。如下所示。

命令行脚本

    cd pom.xml所在的更目录
    mvn pangu:generate

### 输出结果​

控制台输出日志

    xc@xc-mac pangu-examples-crud % mvn pangu:generate
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------< com.gitee.pulanos.pangu:pangu-examples-crud >-------------
    [INFO] Building pangu-examples-crud 1.0.0
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- pangu-framework-generator-maven-plugin:5.0.6:generate (default-cli) @ pangu-examples-crud ---
    [INFO] 开始生成数据表[user]对应的实体对象...
    [INFO] UserEntity.java 生成成功。文件路径：/Users/xc/git2/pangu-framework/pangu-examples/pangu-examples-crud/src/main/java/com/gitee/pulanos/pangu/showcases/crud/dao/entiity.java
    [INFO] 开始生成数据表[user]对应的数据访问接口...
    [INFO] UserMapper.java 生成成功。文件路径：/Users/xc/git2/pangu-framework/pangu-examples/pangu-examples-crud/src/main/java/com/gitee/pulanos/pangu/showcases/crud/dao/mapper/UserMapper.java
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  1.291 s
    [INFO] Finished at: 2021-11-15T21:54:22+08:00
    [INFO] ------------------------------------------------------------------------

## 本文相关范例源码​

- pangu-examples-crud：数据持久化参考范例（含代码生成器演示）
- pangu-examples-dubbo-api：服务接口包（含代码生成器演示）

## 下一步​

继续阅读其它章节获取你想要的答案或通过我们的 开发者社区 寻求更多帮助。