IDEA 代码生成插件 CodeMaker

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> IDEA 代码生成插件 CodeMaker

点击上方“Java知音”,选择“置顶公众号”

技术文章第一时间送达!

作者:肖汉松 http://blog.xiaohansong.com

阅****读

1. 

****2. ****

3. 

****4. ****

前言

Java 开发过程中经常会遇到编写重复代码的事情,例如说:编写领域类和持久类的时候,大部分时候它们的变量名称,类型是一样的,在编写领域类的时候常常要重复写类似的代码。类似的问题太多,却没找到可以支持自定义代码模板的插件,只能自己动手,丰衣足食,开发了一个 IDEA 的代码生成插件,通过 Velocity 支持自定义代码模板来生成代码。

IDEA 代码生成插件 CodeMaker

项目地址:

https://github.com/x-hansong/CodeMaker

主要功能

  • 支持增加自定义代码模板(Velocity)
  • 支持选择多个类作为代码模板的上下文
  • 支持选择多个类作为代码模板的上下文

    安装

    下载插件:

    https://github.com/x-hansong/CodeMaker/releases/download/1.0/CodeMaker.zip

  • 打开设置,选择“Plugin”
  • 在右边的框中点击“Install plugin from disk”
  • 选择上面下载的“CodeMaker.zip”
  • 点击“Apply”,然后重启 IDEA。
  • 在右边的框中点击“Install plugin from disk”

    点击“Apply”,然后重启 IDEA。

    使用

    在 Java 类编辑界面右键“Generate”,选择对应模板即可自动生成代码到当前类的包,大部分情况下生成的代码已经解决了百分之八十的问题,只需稍作修改,移动到合适的包中,就能快速完成代码编写。

    IDEA 代码生成插件 CodeMaker

    如果代码模板需要除了当前类之外的类作为上下文,可以通过类选择框进行选择。

    IDEA 代码生成插件 CodeMaker

    目前自带的两个模板:

    Model:根据当前类生成一个与其拥有类似属性的类,用于自动生成持久类对应的领域类(在持久类拥有超过10个属性的情况下,能够节省大量时间)。

    Converter:该模板需要两个类作为输入的上下文,用于自动生成领域类与持久类的转化类。
    上面两个模板是我自己工作中常用的模板,仅供大家参考,自带的模板可能满足不了大家的需求,所以插件支持自定义新的代码模板。

    模板配置

    IDEA 代码生成插件 CodeMaker
  • 增加模板:点击“Add Template”后,填写相关配置(都不能为空),点击保存后即可生效,无需重启。(感谢khotyn提醒)
  • 删除模板:点击“Delete Template”就能将该模板删除
  • 删除模板:点击“Delete Template”就能将该模板删除

    IDEA 代码生成插件 CodeMaker
  • Template Name:在生成菜单中显示的名称,英文命名
  • Class Number:该模板需要的输入上下文类的数量,例如:如果为 1,,将当前的类作为输入:`$class0`;如果为 2,需要用户再选择一个类作为输入:`$class0`, `$class1`。
  • Class Name:生成的类的名称,支持通过 Velocity 进行配置,上下文为跟代码模板的相同。
  • Class Number:该模板需要的输入上下文类的数量,例如:如果为 1,,将当前的类作为输入: $class0;如果为 2,需要用户再选择一个类作为输入: $class0 $class1

    模板上下文

    模板上下文包含了以下变量:

    
    ########################################################################################
    ##
    ## Common variables:
    ##  $YEAR - yyyy
    ##  $TIME - yyyy-MM-dd HH:mm:ss
    ##  $USER - user.name
    ##
    ## Available variables:
    ##  $class0 - the context class
    ##  $class1 - the selected class, like $class2, $class2
    ##  $ClassName - generate by the config of "Class Name", the generated class name
    ##
    ## Class Entry Structure:
    ##  $class0.className - the class Name
    ##  $class0.packageName - the packageName
    ##  $class0.importList - the list of imported classes name
    ##  $class0.fields - the list of the class fields
    ##          - type: the field type
    ##          - name: the field name
    ##          - modifier: the field modifier, like "private"
    ##  $class0.methods - the list of class methods
    ##          - name: the method name
    ##          - modifier: the method modifier, like "private static"
    ##          - returnType: the method returnType
    ##          - params: the method params, like "(String name)"
    ##
    ########################################################################################
    

    具体用法可参考自带的代码模板,通过模板上下文提供的定制能力,可以让每个用户都定制自己的风格的代码模板。

    看完本文有收获?请转发分享给更多人

    IDEA 代码生成插件 CodeMaker

    原文始发于微信公众号(Java知音):

    本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

    本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

    原文链接:blog.ouyangsihai.cn >> IDEA 代码生成插件 CodeMaker


     上一篇
    了解Mybatis的工作原理吗 了解Mybatis的工作原理吗
    点击上方“Java知音”,选择“置顶公众号” 技术文章第一时间送达! 作者:江南入直 cnblogs.com/scuury/p/10371246.html 推荐阅****读 1.  ****2. **** 3.  ****4
    2021-04-05
    下一篇 
    【加精】Spring整合mybatis中的sqlSession是如何做到线程隔离的? 【加精】Spring整合mybatis中的sqlSession是如何做到线程隔离的?
    点击上方“Java知音”,选择“置顶公众号” 技术文章第一时间送达! 作者:等你归去来 cnblogs.com/yougewe/p/10072740.html 推荐阅****读 1.  ****2. **** 3.  ***
    2021-04-05