代码生成器(一)---项目概述以及项目初始化

目录

一、项目概述

        1.代码生成器解决的问题

        2.代码生成器的实际应用

        3.本地代码生成器的业务流程

        4.实现思路

二、项目初始化


        项目Gitee地址:Code-Generator: 代码生成器!!!

一、项目概述

        1.代码生成器解决的问题

        代码生成器本身的作用就是自动生成常见重复性的代码片段,解决重复编码、效率低下的问题。

        在团队开发中,要生成的代码可能是需要频繁变化和持续更新维护的。如果有一个线上平台来维护多个不同的代码生成器,支持在线编辑和共享生成器,在提高开发效率的同时、将有利于协作共建,打造更高质量的代码生成器。

        2.代码生成器的实际应用

        举例一些代码生成的实际应用场景:

        1)经常做算法题目的同学,可能需要一套Java ACM 代码输入模板,能够支持多种不同输入模式 (比如单次读取和循环)

        2)经常开发新项目的同学,可能需要一套初始化项目模板代码,比如一键生成 Controller 层代码(替换其中的对象)、整合 Redis 和 MySQL 依赖等。

        3)甚至可以制作项目“换皮”工具,支持一键给网络热门项目换皮(比如替换项目的名称、Logo 等)

        3.本地代码生成器的业务流程

        这个阶段,我们的目标是做一个本地(离线)的代码生成器,实现一个简易的Java ACM 模板项目的定制化生成。

        1)准备用于制作代码生成器的原始代码(比如 Java ACM 模板项目),用于后续生成

        2)开发者基于原始代码,设置参数、编写动态模板

        3)制作可交互的命令行工具,支持用户输入参数,得到代码生成器jar 包

        4)使用者得到代码生成器jar 包,执行程序并输入参数,从而生成完整代码

        4.实现思路

        1)先根据本地项目,扫描文件树,实现同样的静态代码生成

        2)根据本地的项目,预设部分动态参数、编写模板文件,能够传入配置对象进行生成

        3)制作可交互的命令行工具,接受用户输入的参数,并动态生成代码

        4)封装制作代码生成器jar 包文件,并简化使用命令

二、项目初始化

        创建普通的Maven项目,项目结构:

        在generator-basic中导入依赖:

    <dependencies>
        <!-- https://freemarker.apache.org/index.html -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.32</version>
        </dependency>
        <!-- https://picocli.info -->
        <dependency>
            <groupId>info.picocli</groupId>
            <artifactId>picocli</artifactId>
            <version>4.7.5</version>
        </dependency>
        <!-- https://doc.hutool.cn/ -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.16</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.4</version>
        </dependency>
        <!-- https://projectlombok.org/ -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.30</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

        成功运行Main.java,说明项目初始化成功:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值