前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IDEA 代码生成插件 CodeMaker

IDEA 代码生成插件 CodeMaker

作者头像
芋道源码
发布2019-09-17 18:13:03
4530
发布2019-09-17 18:13:03
举报
文章被收录于专栏:芋道源码1024芋道源码1024

做积极的人,而不是积极废人!

源码精品专栏

  • 原创 | Java 2019 超神之路,很肝~
  • 中文详细注释的开源项目
  • RPC 框架 Dubbo 源码解析
  • 网络应用框架 Netty 源码解析
  • 消息中间件 RocketMQ 源码解析
  • 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析
  • 作业调度中间件 Elastic-Job 源码解析
  • 分布式事务中间件 TCC-Transaction 源码解析
  • Eureka 和 Hystrix 源码解析
  • Java 并发源码

来源:http://rrd.me/eqCzz

  • 前言
  • 主要功能
  • 安装
  • 使用
  • 模板配置
  • 模板上下文

前言

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

codemaker

项目地址:CodeMaker

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

主要功能

支持增加自定义代码模板(Velocity)

支持选择多个类作为代码模板的上下文

安装

下载插件:CodeMaker.zip

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

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

使用

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

codemaker0

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

codemaker1

目前自带的两个模板:

  1. Model:根据当前类生成一个与其拥有类似属性的类,用于自动生成持久类对应的领域类(在持久类拥有超过10个属性的情况下,能够节省大量时间)。
  2. Converter:该模板需要两个类作为输入的上下文,用于自动生成领域类与持久类的转化类。

上面两个模板是我自己工作中常用的模板,仅供大家参考,自带的模板可能满足不了大家的需求,所以插件支持自定义新的代码模板。

模板配置

codemaker3

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

codemaker2

  1. Template Name:在生成菜单中显示的名称,英文命名
  2. Class Number:该模板需要的输入上下文类的数量,例如:如果为 1,,将当前的类作为输入:

class0, $class1。

  1. Class Name:生成的类的名称,支持通过 Velocity 进行配置,上下文为跟代码模板的相同。

模板上下文

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

# # 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)" #

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



看完点赞,养成习惯。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 芋道源码 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 主要功能
  • 安装
  • 使用
  • 模板配置
  • 模板上下文
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档