代码生成 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaoyureed
V2EX    Java

代码生成

  •  
  •   xiaoyureed
    xiaoyureed 2022-07-16 09:03:02 +08:00 3936 次点击
    这是一个创建于 1182 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Java 里面借助模板引擎可以做代码生成的事情, 比如做 web 开发生成 crud api.

    我在用 ruoyi 框架, 每次生成完之后都需要手动拷贝生成的代码文件到合适的地方, 重启整个应用. 我在想能不能将这个过程自动化, 比如提供一个界面, 点击生成, 新生成的代码会插入到源码合适的位置, 自动编译打包重启, 过一会就可以访问新生成的 api.

    请问各位老哥, 有已经开源的框架吗

    16 条回复    2022-07-16 15:51:49 +08:00
    MEIerer
        1
    MEIerer  
       2022-07-16 09:04:44 +08:00
    我还以为是你做了个工具呢,我目前也想搞个类似 cli 工具那样的代码生成,一个一个写太累人了
    pocketz
        2
    pocketz  
       2022-07-16 09:22:35 +08:00
    什么叫:合适的位置
    xiaoyureed
        3
    xiaoyureed  
    OP
       2022-07-16 09:32:23 +08:00
    @pocketz 在 ruoyi 里头, 生成的代码里头有`package xxxx.xxx` , 固定好了位置, 得手动拷贝过去
    kidult
        4
    kidult  
       2022-07-16 09:36:59 +08:00
    你需要的是 CI 工具
    pocketz
        5
    pocketz  
       2022-07-16 09:56:08 +08:00
    @xiaoyureed 我记得若依生成的代码压缩包是有文件夹层次的,你不如写个脚本+ spring dev tool
    neptuno
        6
    neptuno  
       2022-07-16 10:08:22 +08:00 via iPhone
    @xiaoyureed #3 会出现代码写到一半,你修改了表结构,不小心重新生成覆盖的问题。到时候哭都来不及
    yeqizhang
        7
    yeqizhang  
       2022-07-16 10:24:09 +08:00 via Android
    若依好像可以生成代码到指定路径吧
    codehz
        8
    codehz  
       2022-07-16 10:25:41 +08:00 via iPhone
    我记得 gradle 可以指定源码读取的位置( maven 也可以)不需要手动复制)
    ma836323493
        9
    ma836323493  
       2022-07-16 10:35:02 +08:00
    自己去改生成代码的源码就行了,我改了生成到指定文件,顺带把 加菜单的 sql 也执行了
    ming159
        10
    ming159  
       2022-07-16 11:05:35 +08:00
    你可以看看 JeecgBoot ... 功能更强一点.
    另外你可以将生成代码的路径直接指向源码目录,然后配合 JRebel 这种热更新的工具就能达到你期望的目标.

    当然生成的代码的目录结构与源码目录结构可能不同,这时候你可以自己搞个目录监控,将生成的源码自动拷贝到源码对应的目录下即可.
    ericls
        11
    ericls  
       2022-07-16 11:07:15 +08:00 via iPhone
    谁生成 谁维护
    aguesuka
        12
    aguesuka  
       2022-07-16 11:48:43 +08:00
    关键字 generated-sources, 复制到源目录不是好办法
    siweipancc
        13
    siweipancc  
       2022-07-16 11:54:41 +08:00 via iPhone
    ……用过半成品,老总要求的低代码平台,交了 2w 的学费,浪费双方生命
    summerLast
        14
    summerLast  
       2022-07-16 12:00:03 +08:00
    输出流的的输出位置调整一下即可
    ljsh093
        15
    ljsh093  
       2022-07-16 13:31:04 +08:00
    好像可以搞 groovy 脚本
    Jtyczc
        16
    Jtyczc  
       2022-07-16 15:51:49 +08:00
    easy code 插件
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5662 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 03:01 PVG 11:01 LAX 20:01 JFK 23:01
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86