前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >代码生成器(一)

代码生成器(一)

作者头像
阑梦清川
发布2025-02-24 22:43:41
发布2025-02-24 22:43:41
3300
代码可运行
举报
文章被收录于专栏:学习成长指南学习成长指南
运行总次数:0
代码可运行
前段时间买了那个yupi的变成导航项目实战课,里面的这个内容就是介绍了一个类似于代码生成器的项目,购买书籍之后是可以去看这个对应的视频教程的,所以就可以学习一下这个项目,我相信,会让我们有收获的;

1.创建项目

这个主要就是创建一个空项目:如下图所示(这个好像是和我们之前的这个创建项目的流程不太一样,选择的是这个empty project这个空项目);

image-20241219093301523
image-20241219093301523

然后就失去安装这个ignore这个插件,表示的就是我们可以通过这个插件去进行这个ignore文件的创建,这个其实是很有利于我们的这个个人的开发的

我们的这个插件就是生成这个ignore的相关的这个文件的,然后我们创建文件的时候就是可以直接进行选择的,我们这个时候就不需要进行这个手动的书写;

image-20241219172515480
image-20241219172515480

下面的这个就是我们自己新建这个ignore文件的时候的这个可以攻我们进行选择的这个末班的内容;

image-20241218212423878
image-20241218212423878

2.项目的初始化说明

先回顾一下我这两天的这个痛苦的历程:我最近总觉得没学到什么东西,因为就是这个项目的初始化很难搞把,尤其是我是用这个git对于这个项目的初始化的代码进行提交的时候,也是遇到了这个各种各样的问题,没想到,还没开始写代码,就遇到了这么多的问题,我也真的很是无语;

而且这些问题都不是技术上面的问题,可能就是因为我自己的这个项目的这个经验不足,所以会出现何种各样的为题,每一次遇到问题需要搞好久,昨天晚上就是弄了很久,但是依然没有解决问题;

我的这个博客应该是三天前,也就是周二就开始写了,但是因为这个过程中遇到的这个问题太多了,所以一直在解决问题的这个路上,我可以把自己第一次做项目的这个过程中遇到的问题简单的记录一下;

首先看下这个项目经过初始化之后的这个目录文件的结构吧:

image-20241219183721028
image-20241219183721028

首先就是这个demo-project的位置:这个就是我遇到的第一个问题,我们开始学这个内容的时候,一定要把我们的这个项目的位置放正确,否则就会出现各种各样的问题的;

这个demo-project是在这个code-gene1219这个上面右键选择我们的这个module这个内容创建的;

这个acm-template这个模版是从yupi的这个网盘上面下载的,据说这个就是一个acm代码示例,我们后面的这个项目就是在这个demo的基础上面进行改造的;

image-20241219183824654
image-20241219183824654

接下来就是这个:因为这个项目分为三个阶段,所以这个第一个我自己起名字为这个basic项目,这个是在我们的code-gene1219上面新建这个project选择的是我们的合格maven文件,接着在这个pom.xml里面导入这个相关的依赖部分;

image-20241219184053250
image-20241219184053250

在这个项目里面最让我头疼的就是这个git提交的时候遇到的这个问题,我为了这个项目,应该是创建了四个仓库(失败之后删除重建),最后才得以解决;

1)主要是这个git的嵌套的问题:需要删除这个里层的这个.git文件;

2)无法连接到这个远程仓库的问题:这个还是上面的问题,主要就是我再这两个.git的目录下面都进行了这个提交,因此出现了这个无法连接,以及这个嵌套的问题;

总觉得问题很难解决,但是好像具体是什么问题我只能列举出来上面的亮点,就是上面的这两个让我要久了好长时间,但是毕竟现在已经全部解决了;

3.第一阶段的流程

静态文件:直接复制拷贝的文件,基本上不会发生太大的这个变动,例如这个md文件和这个ignore文件;

动态文件:就是需要进行修改和操作的文件,会受到我们的认为的影响;

1)生成动静态的文件;

2)开始的单个生成,测试运行效果;

3)然后是同时生成这两个的文件,得到完整的acm代码的生成;

4)开发命令行的工具,接受我们的用户的输入,生成完整的代码;

5)打包,供用户进行使用;

4.hutool类的使用

image-20241219190843074
image-20241219190843074

5.静态文件的生成

整体的架构:这个报错主要是因为这个路径的问题;

inputpath里面的这个需要包含我们的根目录,这个file.separator就是为了获取这个分隔符,因此不同的这个操作系统上面需要对于这个分隔符进行不同程度的这个处理吧;

image-20241219192055350
image-20241219192055350

项目的效果的展示:

image-20241219192736634
image-20241219192736634

6.静态文件生成过程详解

上面的这个只是展示了我们的这个静态文件生成的这个初步的效果:

6.1工具类的使用

收先认识一下这个hutool类,这个类里面有很多的这个相关的方法,日期时间,文件读取之类的,供给我们进行使用;

我们的这个hutool这个工具类使用主要就是体现在下面的这个静态方法里面的,这个里面的参数就是我们的输入路径和输出路径,false表示的就是是不是进行覆盖;

image-20241219193311115
image-20241219193311115

其实对于这个方法的解释,我们不懂的话点进去查看就可以了:初次需要进行下载,否则这个内容我们是看不懂的,下面的这个图片就是下载之后的这个情况;

image-20241219193501437
image-20241219193501437

其实这个主要是第一次接触,我最开始听的时候也没听明白这个方法是干什么的,运行结果出来的时候我才看懂:这个就是使用这个个工具类,我们告诉这个方法,我们想要吧这个A文件复制到B这个位置,我们的第一个参数就是我们的A文件的位置,第二个参数就是我们的B位置,调用这个方法之后,我们的这个B位置就会生成这个A文件的内容,完全一样的;

6.2关于主方法的书写

这个其实就是定义变量:

第一个变量表示的获取我们的项目的根目录的位置,user.dir就是根目录的意思,gir的全程就是目录(英文里面);

input就是复制的我们的这个模板文件的地址;

output为什么是我们的根目录,就是我们的这个文件生成的新的,放到我们的这个根目录这个下面即可;

最后是使用的这个hutool里面的这个拷贝的方法;

image-20241219193900397
image-20241219193900397

6.3关于路径的说明

image-20241219194127594
image-20241219194127594

我们进行下面的这个操作:我们想要复制的是这个acm-template,因此这个位置要选对;

image-20241219194202354
image-20241219194202354

然后我们需要选择的是这个绝对路径还是相对路径呢?一定是相对路径,如果我们的这个项目进行开源的话,其他人拷贝我们的这个代码,如果我们的这个代码里面使用的这个绝对路径,其他的使用者的这个电脑里面没有这个路径就会报错的;

image-20241219194256566
image-20241219194256566

实际上我们的这个复制结果是需要进行下面的这个修改的:中间注释掉的就是我们的复制的这个结果,中间的文件分割符,就是需要使用我们的file.seperator进行这个分隔符的表示,前面的这个是我们经过运行之后的报错添加的;

如果我们仅仅是在这个复制的结果的基础上面对于这个路径分隔符进行修改们还是会报错的,因此,这个时候我么是需要进行前面加上这个根目录的路径和我们的分隔符的,下面的这个注释就是我对于这个现象的解释;

image-20241219200212180
image-20241219200212180

6.4我的感想

对于这个项目运行结果,就会在我们的这个根目录下面生成我们的这个acm的模板文件;

现在我知道了这个acm-demo的这个具体的用途,刚开始还不是很了解;

以及这个我们要做的就是这个命令行工具,和我们的这个acm模板里面的多次输入,依次输出的这个效果是很接近的;

还有就是我们为什么要这样搞,就是我们原本的这个复制粘贴不灵活,这个方法我们可以灵活的进行使用;

7.关于git的说明

刚想起来,最后补充下,就是开始创建这个项目的时候,有些文件是不需要进行上传的,但是我们的这个git默认进行了追跟踪,我们可以使用下面的这个指令取消,即让我们的这个文件不被git管理;

代码语言:javascript
代码运行次数:0
复制
git rm -rf --cached .

最后的这个点一定不要少,表示的是我们的当前目录,取消跟踪,这个效果就是我们的这个idea里面的这个xml文件的颜色会发生变化,大家可以仔细观察一下这个现象,买这个也是我之前没有注意到的这个细节;

上面的这个指令是在我们的这个idea的终端操作的:

代码语言:javascript
代码运行次数:0
复制
m -rf --cached .

最后的这个点一定不要少,表示的是我们的当前目录,取消跟踪,这个效果就是我们的这个idea里面的这个xml文件的颜色会发生变化,大家可以仔细观察一下这个现象,买这个也是我之前没有注意到的这个细节;

上面的这个指令是在我们的这个idea的终端操作的:

image-20241219201808215
image-20241219201808215
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前段时间买了那个yupi的变成导航项目实战课,里面的这个内容就是介绍了一个类似于代码生成器的项目,购买书籍之后是可以去看这个对应的视频教程的,所以就可以学习一下这个项目,我相信,会让我们有收获的;
  • 1.创建项目
  • 2.项目的初始化说明
  • 3.第一阶段的流程
  • 4.hutool类的使用
  • 5.静态文件的生成
  • 6.静态文件生成过程详解
    • 6.1工具类的使用
    • 6.2关于主方法的书写
    • 6.3关于路径的说明
    • 6.4我的感想
  • 7.关于git的说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档