代码生成器maven插件源码怎么编写

发布时间:2021-10-19 17:25:34 作者:柒染
来源:亿速云 阅读:196

本篇文章为大家展示了代码生成器maven插件源码怎么编写,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

为什么要写一个代码生成器

在写后端项目的时候,基础的实现功能都是增删查改,通常以表或者指定的数据模型为单位进行增删查改。

在大部分的Web项目中,通常写一个增删查改需要新建很多个基础类。

假设你的项目是由 控制层、服务层、数据访问层组成,那么如果新增一个表的增删查改功能,我们就也许需要针对这个表创建以下这些类。

Model.java
ModelController.java
IModelService.java
ModelService.java
IModelDao.java
ModelDao.java

创建完成后,某些项目结构是有通用的基础类,可能还需要根据Model类型来添加泛型,这样又是需要一顿复制粘贴的操作。

interface IModelService extends IBaseService<Model,Long> {}
class ModelService extends BaseService<Model,Long> implements IModelService {}
interface IModelDao extends IBaseDao<Model,Long> {}
class ModelDao extends BaseDao<Model,Long> implements IModelDao {}

当然每个公司的项目结构都不同,以上操作可能有多有少,但是对于一个后台系统来说,大量类似的增删查改类是少不了的。 如果你的项目结构是无规律的,那么代码生成器可能不太适合你

代码生成器的级别

  1. 复制粘贴型代码生成器
    顾名思义,最简单也是用的最多的方式,直接将现有的其他类似文件复制一份,改一改关键信息即可。成本最低,耗时根据项目需要复制的文件决定。有可能因为少改某些内容导致代码异常。

总的来说,通过复制粘贴的方式来生成代码,简单易用,无学习成本,但是比较容易出错,有一定修改成本,耗时和文件数量、修改内容成正比。

  1. 框架自带代码生成器
    通常和框架绑定,对于已有的系统难以植入,局限性高。生成的代码格式较为单一,很难做灵活配置化使用。

  2. 自定义代码生成器
    因为大部分系统的代码结构比较统一,但又有些不同,所以在市场上没有适合自己的生成器的时候,我们就会选择自己写一个,通过直接执行main方法来生成文件,定义几个参数,在需要生成的时候进行修改执行。

本文介绍的代码生成器主要在此基础上进行扩展,通过maven插件的方式,将需要自定义的参数通过插件配置来运行,这样一套代码多地使用,只需要添加maven依赖,不需要将生成器的代码复制多遍难以维护。

自定义代码生成器maven插件

代码生成器的原理,大体就是根据指定的模板,传入动态的参数,替换模板内容,动态生成不同的文件代码。

通过maven插件的方式,可以很好的集成到我们的项目中,只需要添加插件依赖,然后添加几个配置,执行maven相关命令,就可以完成代码生成的操作。

这是我在工作当中为了给组员提供更优质的开发体验,而编写的一款代码生成器。

  1. 读取表结构作为参数

  2. 直接调用接口, 获取返回值作为参数

  3. 直接调用本地代码,获取返回值作为参数

代码实现细节讲解

上传至中央仓库教程

我真是边写教程边上传,真正的一手实操经验

1. 申请中央仓库账号

代码生成器maven插件源码怎么编写

代码生成器maven插件源码怎么编写

前期注册工作就完成了,接下来是上传流程,接下来流程用到的用户名密码使用刚刚创建的用户名密码

2. pom.xml 修改和 settings.xml 配置

<servers>
    <server>
        <id>sonatype-center</id>
        <username>youRegisterUsername</username>
        <password>youRegisterPassword</password>
    </server>
</servers>
<distributionManagement>
    <repository>
        <id>sonatype-center</id>
        <name>releases repo</name>
        <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
    </repository>
    <snapshotRepository>
        <id>sonatype-center</id>
        <name>snapshots repo</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
</distributionManagement>
<name>simple-codegen</name>
<url>https://diamondfsd.com</url>

<description>
    simple code generate maven plugin.
    Template rendering through Java and freemarker.
</description>

<developers>
    <developer>
        <id>diamondfsd</id>
        <name>Diamond Zhou</name>
        <email>diamondfsd@gmail.com</email>
        <url>https://diamondfsd.com</url>
        <timezone>8</timezone>
    </developer>
</developers>

<licenses>
    <license>
        <name>The MIT License</name>
        <url>https://opensource.org/licenses/MIT</url>
        <distribution>repo</distribution>
    </license>
</licenses>
<scm>
    <url>
        https://github.com/k55k32/simple-codegen.git
    </url>
</scm>

3. 文件签名 (不签名无法发布)

安装完成后的名字叫: Kleopatra 打开后,新建一个密钥对,创建完成后。

注意如果是在IDE等环境中运行maven,安装完Kleopatra需要重启IDE,否则环境变量未生效,执行maven插件的时候,找不到 gpg 命令

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-gpg-plugin</artifactId>
    <version>1.5</version>
    <executions>
        <execution>
            <id>sign-artifacts</id>
            <phase>verify</phase>
            <goals>
                <goal>sign</goal>
            </goals>
        </execution>
    </executions>
</plugin>

4. 到中央仓库发布

上述内容就是代码生成器maven插件源码怎么编写,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. eclipse maven 插件安装
  2. 如何编写nagios插件

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

maven

上一篇:JSP控制流语句和运算符有哪些

下一篇:如何使用React和DOM的节点删除算法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》