编码规范系列(一):Eclipse Code Templates设置

转载 2016年05月31日 15:12:44

http://chenzhou123520.iteye.com/blog/1625629


从工作开始,经历了几个项目的开发,现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范。俗话说约定优于配置,但是在执行过程中往往发现效果不是很好(主要是指编码规范这一方面)。所以我们不得不采取一些措施来协助我们统一项目开发人员的编码风格。主要包括三个方面:设置Code Templates、Eclipse formatter、Checkstyle,本篇主要介绍如何设置Code Templates,具体步骤如下:

 

打开Window->Preferences->Java->Code Style->Code Templates

Eclipse设置Code Templates

点击"Import",导入模板codetemplates.xml文件。

codetemplates.xml内容是我们自己预先定义好的,在这里先不详细描述,我们可以看到Eclipse Code Templates界面中间Configure generated code and comments区域包含了两个菜单树:Comment、Code,如下图所示:

Comments代表注释模板,Code代表代码模板,其中每一个子菜单代表子项的模板。

我们只要点击某一个子项,就会在界面下方的Pattern区域看到该项我们所定义的模板内容和格式,如下图所示:

如上图所示,当我们点击Comments下的Files子菜单时,下面的Pattern会显示Java文件的头部注释。

下面详细列出每一个子项的模板格式:

Comments-->Files(Java文件注释)

Java代码  收藏代码
  1. /** 
  2.  * Project Name:${project_name} 
  3.  * File Name:${file_name} 
  4.  * Package Name:${package_name} 
  5.  * Date:${date}${time} 
  6.  * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved. 
  7.  * 
  8.  */  

Comments-->Types(Java类注释)

Java代码  收藏代码
  1. /** 
  2.  * ClassName: ${type_name} <br/> 
  3.  * Function: ${todo} ADD FUNCTION. <br/> 
  4.  * Reason: ${todo} ADD REASON(可选). <br/> 
  5.  * date: ${date} ${time} <br/> 
  6.  * 
  7.  * @author ${user} 
  8.  * @version ${enclosing_type}${tags} 
  9.  * @since JDK 1.6 
  10.  */  

Comments-->Fields(类字段注释)

Java代码  收藏代码
  1. /** 
  2.  * ${field}:${todo}(用一句话描述这个变量表示什么). 
  3.  * @since JDK 1.6 
  4.  */  

Comments-->Constructors(构造函数注释)

Java代码  收藏代码
  1. /** 
  2.  * Creates a new instance of ${enclosing_type}. 
  3.  * 
  4.  * ${tags} 
  5.  */  

Comments-->Methods(Java方法注释)

Java代码  收藏代码
  1. /** 
  2.  * ${enclosing_method}:(这里用一句话描述这个方法的作用). <br/> 
  3.  * ${todo}(这里描述这个方法适用条件 – 可选).<br/> 
  4.  * ${todo}(这里描述这个方法的执行流程 – 可选).<br/> 
  5.  * ${todo}(这里描述这个方法的使用方法 – 可选).<br/> 
  6.  * ${todo}(这里描述这个方法的注意事项 – 可选).<br/> 
  7.  * 
  8.  * @author ${user} 
  9.  * ${tags} 
  10.  * @since JDK 1.6 
  11.  */  

Comments-->Overriding methods(重写方法注释)

Java代码  收藏代码
  1. /** 
  2.  * ${todo} 简单描述该方法的实现功能(可选). 
  3.  * ${see_to_overridden} 
  4.  */  

Comments-->Delegate methods(代理方法注释)

Java代码  收藏代码
  1. /** 
  2.  * ${tags} 
  3.  * ${see_to_target} 
  4.  */  

Comments-->Getters(Java Getter方法注释)

Java代码  收藏代码
  1. /** 
  2.  * ${bare_field_name}. 
  3.  * 
  4.  * @return  the ${bare_field_name} 
  5.  * @since   JDK 1.6 
  6.  */  

Comments-->Setters(Java Setters方法注释)

Java代码  收藏代码
  1. /** 
  2.  * ${param}. 
  3.  * 
  4.  * @param   ${param}    the ${bare_field_name} to set 
  5.  * @since   JDK 1.6 
  6.  */  

Code-->New Java files(新建java文件代码模板)  

Java代码  收藏代码
  1. /** 
  2.  * Project Name:${project_name} 
  3.  * File Name:${file_name} 
  4.  * Package Name:${package_name} 
  5.  * Date:${date}${time} 
  6.  * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved. 
  7.  * 
  8. */  
  9. ${filecomment}  
  10.   
  11. ${package_declaration}  
  12. /** 
  13.  * ClassName:${type_name} <br/> 
  14.  * Function: ${todo} ADD FUNCTION. <br/> 
  15.  * Reason:   ${todo} ADD REASON. <br/> 
  16.  * Date:     ${date} ${time} <br/> 
  17.  * @author   ${user} 
  18.  * @version   
  19.  * @since    JDK 1.6 
  20.  * @see       
  21.  */  
  22. ${typecomment}  
  23. ${type_declaration}  

Code-->Method body(方法体模板)

Java代码  收藏代码
  1. // ${todo} Auto-generated method stub  
  2. ${body_statement}  

Code-->Constructor body(构造函数模板)

Java代码  收藏代码
  1. ${body_statement}  
  2. // ${todo} Auto-generated constructor stub  

Code-->Getter body(字段Getter方法模板)

Java代码  收藏代码
  1. return ${field};  

Code-->Setter body(字段Setter方法模板)

Java代码  收藏代码
  1. ${field} = ${param};  

Code-->Catch block body(异常catch代码块模板)  

Java代码  收藏代码
  1. // ${todo} Auto-generated catch block  
  2. ${exception_var}.printStackTrace();  
 

其中codetemplates.xml内容如下:

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="false" context="gettercomment_context" deleted="false" description="Comment for getter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name="gettercomment">/**  
  2.  * ${bare_field_name}.  
  3.  *  
  4.  * @return  the ${bare_field_name}  
  5.  * @since   JDK 1.6  
  6.  */</template><template autoinsert="false" context="settercomment_context" deleted="false" description="Comment for setter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.settercomment" name="settercomment">/**  
  7.  * ${param}.  
  8.  *  
  9.  * @param   ${param}    the ${bare_field_name} to set  
  10.  * @since   JDK 1.6  
  11.  */</template><template autoinsert="false" context="constructorcomment_context" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name="constructorcomment">/**  
  12.  * Creates a new instance of ${enclosing_type}.  
  13.  *  
  14.  * ${tags}  
  15.  */  
  16. </template><template autoinsert="false" context="filecomment_context" deleted="false" description="Comment for created Java files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.filecomment" name="filecomment">/**  
  17.  * Project Name:${project_name}  
  18.  * File Name:${file_name}  
  19.  * Package Name:${package_name}  
  20.  * Date:${date}${time}  
  21.  * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.  
  22.  *  
  23.  */</template><template autoinsert="false" context="typecomment_context" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.typecomment" name="typecomment">/**  
  24.  * ClassName: ${type_name} &lt;br/&gt;  
  25.  * Function: ${todo} ADD FUNCTION. &lt;br/&gt;  
  26.  * Reason: ${todo} ADD REASON(可选). &lt;br/&gt;  
  27.  * date: ${date} ${time} &lt;br/&gt;  
  28.  *  
  29.  * @author ${user}  
  30.  * @version ${enclosing_type}${tags}  
  31.  * @since JDK 1.6  
  32.  */</template><template autoinsert="false" context="fieldcomment_context" deleted="false" description="Comment for fields" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name="fieldcomment">/**  
  33.  * ${field}:${todo}(用一句话描述这个变量表示什么).  
  34.  * @since JDK 1.6  
  35.  */</template><template autoinsert="false" context="methodcomment_context" deleted="false" description="Comment for non-overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name="methodcomment">/**  
  36.  * ${enclosing_method}:(这里用一句话描述这个方法的作用). &lt;br/&gt;  
  37.  * ${todo}(这里描述这个方法适用条件 – 可选).&lt;br/&gt;  
  38.  * ${todo}(这里描述这个方法的执行流程 – 可选).&lt;br/&gt;  
  39.  * ${todo}(这里描述这个方法的使用方法 – 可选).&lt;br/&gt;  
  40.  * ${todo}(这里描述这个方法的注意事项 – 可选).&lt;br/&gt;  
  41.  *  
  42.  * @author ${user}  
  43.  * ${tags}  
  44.  * @since JDK 1.6  
  45.  */</template><template autoinsert="false" context="overridecomment_context" deleted="false" description="Comment for overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name="overridecomment">/**  
  46.  * ${todo} 简单描述该方法的实现功能(可选).  
  47.  * ${see_to_overridden}  
  48.  */</template><template autoinsert="true" context="delegatecomment_context" deleted="false" description="Comment for delegate methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name="delegatecomment">/**  
  49.  * ${tags}  
  50.  * ${see_to_target}  
  51.  */</template><template autoinsert="false" context="newtype_context" deleted="false" description="Newly created files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.newtype" name="newtype">/**  
  52.  * Project Name:${project_name}  
  53.  * File Name:${file_name}  
  54.  * Package Name:${package_name}  
  55.  * Date:${date}${time}  
  56.  * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.  
  57.  *  
  58. */  
  59. ${filecomment}  
  60.   
  61. ${package_declaration}  
  62. /**  
  63.  * ClassName:${type_name} &lt;br/&gt;  
  64.  * Function: ${todo} ADD FUNCTION. &lt;br/&gt;  
  65.  * Reason:   ${todo} ADD REASON. &lt;br/&gt;  
  66.  * Date:     ${date} ${time} &lt;br/&gt;  
  67.  * @author   ${user}  
  68.  * @version    
  69.  * @since    JDK 1.6  
  70.  * @see        
  71.  */  
  72. ${typecomment}  
  73. ${type_declaration}  
  74. </template><template autoinsert="true" context="classbody_context" deleted="false" description="Code in new class type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.classbody" name="classbody">  
  75. </template><template autoinsert="true" context="interfacebody_context" deleted="false" description="Code in new interface type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name="interfacebody">  
  76. </template><template autoinsert="true" context="enumbody_context" deleted="false" description="Code in new enum type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.enumbody" name="enumbody">  
  77. </template><template autoinsert="true" context="annotationbody_context" deleted="false" description="Code in new annotation type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name="annotationbody">  
  78. </template><template autoinsert="true" context="catchblock_context" deleted="false" description="Code in new catch blocks" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.catchblock" name="catchblock">  
  79. // ${todo} Auto-generated catch block  
  80. ${exception_var}.printStackTrace();  
  81. </template><template autoinsert="false" context="methodbody_context" deleted="false" description="Code in created method stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodbody" name="methodbody">  
  82. // ${todo} Auto-generated method stub  
  83. ${body_statement}</template><template autoinsert="true" context="constructorbody_context" deleted="false" description="Code in created constructor stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name="constructorbody">  
  84. ${body_statement}  
  85. // ${todo} Auto-generated constructor stub  
  86. </template><template autoinsert="true" context="getterbody_context" deleted="false" description="Code in created getters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.getterbody" name="getterbody">return ${field};</template><template autoinsert="true" context="setterbody_context" deleted="false" description="Code in created setters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.setterbody" name="setterbody">${field} = ${param};</template></templates>  

 

设置Code Templates的目的主要是为了统一各种注释的格式以及代码的模板,只要设定好Code Templates之后利用Eclipse就可以方便地生成我们自定义的注释,开发人员也容易接受!

编码规范系列(一):Eclipse Code Templates设置

从工作开始,经历了几个项目的开发,现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范。俗话说约定优于配置,但是在执行过程中往往发现效...
  • yAodoNg_y
  • yAodoNg_y
  • 2013年09月04日 22:57
  • 8337

编码规范系列----Eclipse Code Templates设置

从工作开始,经历了几个项目的开发,现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范。俗话说约定优于配置,但是在执行过程中往往发现效...
  • huaishu
  • huaishu
  • 2013年12月17日 23:22
  • 738

81、编码规范系列(一):Eclipse Code Templates设置

编码规范系列(一):Eclipse Code Templates设置
  • DarrenMJ
  • DarrenMJ
  • 2016年05月09日 11:01
  • 391

玩转Eclipse — 为懒人准备的Java Code Templates(持续更新中...)

在之前的一篇博客《玩转Eclipse — 自动代码生成的Java Code Template》中详细介绍了,如何利用Java Code Template自动地快速生成具有一定规律、可以模板化的代码。一...
  • Super_Eagle
  • Super_Eagle
  • 2013年11月07日 12:43
  • 6836

intellj idea 如何设置类似Code Templates的文件级别和方法级别的注释

intellj idea的强大之处就不多说了,相信每个用过它的人都会体会到,但是我们也会被他的复杂搞的晕头转向,尤其刚从eclipse转过来的童鞋,相信刚开始的那段经历都是不堪回首的,我也是一步步这么...
  • u010261573
  • u010261573
  • 2016年01月26日 09:48
  • 5679

Eclipse Code Templates设置。

Eclipse Code Templates设置。
  • en_joker
  • en_joker
  • 2017年11月01日 14:03
  • 76

【Eclipse】Code Templates 设置

设置路径:Window->Preferences->Java->Code Style->Code Templates: 先举一个例子: 【Comments】 Files:Java 文件注释 ...
  • symsmile
  • symsmile
  • 2015年01月15日 14:15
  • 371

Eclipse Code Templates设置

Eclipse Code Templates设置 1.打开Window->Preferences->Java->Code Style->CodeTemplates 2.Eclipse Code Tem...
  • m0_37934173
  • m0_37934173
  • 2017年07月04日 16:04
  • 98

Eclipse Java 注释模板设置 code templates

设置注释模板 设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。...
  • timo1160139211
  • timo1160139211
  • 2017年05月05日 20:02
  • 345

eclipse codeFormatter 和 codeTemplates 模板

点击打开链接
  • hwl1314
  • hwl1314
  • 2014年05月22日 18:35
  • 9155
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编码规范系列(一):Eclipse Code Templates设置
举报原因:
原因补充:

(最多只允许输入30个字)