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

打开Window->Preferences->Java->Code Style->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文件注释)

  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类注释)

  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(类字段注释)

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

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

  1. /**
  2. * Creates a new instance of ${enclosing_type}.
  3. *
  4. * ${tags}
  5. */

Comments-->Methods(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(重写方法注释)

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

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

  1. /**
  2. * ${tags}
  3. * ${see_to_target}
  4. */

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

  1. /**
  2. * ${bare_field_name}.
  3. *
  4. * @return  the ${bare_field_name}
  5. * @since   JDK 1.6
  6. */

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

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

Code-->New Java files(新建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. ${package_declaration}
  11. /**
  12. * ClassName:${type_name} <br/>
  13. * Function: ${todo} ADD FUNCTION. <br/>
  14. * Reason:   ${todo} ADD REASON. <br/>
  15. * Date:     ${date} ${time} <br/>
  16. * @author   ${user}
  17. * @version
  18. * @since    JDK 1.6
  19. * @see
  20. */
  21. ${typecomment}
  22. ${type_declaration}

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

  1. // ${todo} Auto-generated method stub
  2. ${body_statement}

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

  1. ${body_statement}
  2. // ${todo} Auto-generated constructor stub

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

  1. return ${field};

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

  1. ${field} = ${param};

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

  1. // ${todo} Auto-generated catch block
  2. ${exception_var}.printStackTrace();

其中codetemplates.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. ${package_declaration}
  61. /**
  62. * ClassName:${type_name} &lt;br/&gt;
  63. * Function: ${todo} ADD FUNCTION. &lt;br/&gt;
  64. * Reason:   ${todo} ADD REASON. &lt;br/&gt;
  65. * Date:     ${date} ${time} &lt;br/&gt;
  66. * @author   ${user}
  67. * @version
  68. * @since    JDK 1.6
  69. * @see
  70. */
  71. ${typecomment}
  72. ${type_declaration}
  73. </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">
  74. </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">
  75. </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">
  76. </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">
  77. </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">
  78. // ${todo} Auto-generated catch block
  79. ${exception_var}.printStackTrace();
  80. </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">
  81. // ${todo} Auto-generated method stub
  82. ${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">
  83. ${body_statement}
  84. // ${todo} Auto-generated constructor stub
  85. </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就可以方便地生成我们自定义的注释,开发人员也容易接受!

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

Eclipse Code Templates设置的更多相关文章

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

    背景:长久以来,对java编程中的注释不甚理解.再次学习<疯狂JAVA讲义>基础,深深的感到自己基本功的不牢固.所以要做到事无巨细,好好修炼. 认识注释 常识 注释的作用: 回顾原有的代码 ...

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

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

  3. 编码规范:Eclipse Code Templates设置

    现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范.设置Code Templates的目的主要是为了统一各种注释的格式以及代码的模板 ...

  4. eclipse code templates 设置(eclipse注释模版配置)

    文件(Files)注释标签:/** * @Title: ${file_name} * @Package ${package_name} * @Description: ${todo} * Copyri ...

  5. Eclipse编码规范——Code Templates设置

    Eclipse编码规范——Code Templates设置 Eclipse编码规范主要包括三个方面:设置Code Templates.Eclipse formatter.Checkstyle, 本篇主 ...

  6. Eclipse Code Template 设置自动加注释(转)

    Eclipse Code Template 设置自动加注释 设置注释模板的入口: Window->Preference->Java->Code Style->Code Temp ...

  7. 编码规范(一)之Code Templates的设置(转)

    编码规范(一)之Code Templates的设置 基于公司的主流开发工具为eclipse,但每个人都有自己的编码习惯,为了统一格式,这里通过三个方面:设置Code Templates.Checkst ...

  8. 编码规范(二)之Code Templates的设置(转)

    http://swiftlet.net/archives/1199 编码规范(二)之Code Templates的设置(转) 文件(Files)注释标签:/** * @Title: ${file_na ...

  9. idea中Eclipse Code Formatter插件设置和使用,以及注释模板的修改

    在settings里面找到plugins这个选项,搜索Eclipse Code Formatter,点击安装,重启idea即可进行配置: 首先,先安装Eclipse Code Formatter插件: ...

随机推荐

  1. C#开发的WebService使用JSON格式传递数据+Ajax测试

    [C#]  WebService 使用 JSON 格式傳遞筆記 + JQuery 測試 0 2 因為一些因素,必須改寫WebService,很傳統,但是很多公司還在用.. 因為XML 的關係,不想讓他 ...

  2. Spring生态

    1.简洁有力,干掉了j2ee容器层特别是ejb,spring在rod Johnson十几年前一个人单挑j2ee体系开始,到十年前开始大行其道至今,基本上是java开发领域的事实标准.从此大部分开发者去 ...

  3. C#中如何计算时间差?

    C#中怎么计算两时间相差多少.计算2个时间之间的差,可以计算到时分秒! <1> label1.Text = "2004-1-1 15:36:05"; label2.Te ...

  4. Mouse_event 鼠标点击

    //这样就是左键单击 mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );// 按下mouse_event( MOUSEEVENTF_LEFTUP, 0, ...

  5. 关于java的JIT知识

    1.JIT的工作原理图  工作原理 当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器.JIT编译器将字节码编译成本机机器代码. 通常javac将程序源码编译, ...

  6. [AngularJS] ngCloak

    The ngCloak directive is used to prevent the Angular html template from being briefly displayed by t ...

  7. ckfinder动态指定上传路径

    默认情况下无法用代码修改config.ascx中的BaseUrl设置,因为其后端代码ConfigFile中并没有提供修改BaseUrl的方法,这里我借用了fckeditor以前的用法:利用sessio ...

  8. c#_自动化测试 (五) 读写64位操作系统的注册表

    非Web程序(桌面程序)的设置一般都存在注册表中. 给这些程序做自动化测试时, 需要经常要跟注册表打交道. 通过修改注册表来修改程序的设置. 本章介绍如何利用C#程序如何操作注册表, 特别是如何操作6 ...

  9. 我和ip_conntrack不得不说的一些事

    面对让人无语的ip_conntrack,我有一种说不出的感觉!自从接触它到现在,已经两年多了,其间我受到过它的恩惠,也被它蹂躏过,被它玩过,但是又不忍心舍弃它,因为我找不到更好的替代.工作中,学习中, ...

  10. 模式匹配运算符–Shell

    转载:http://www.firefoxbug.net/?p=722     Var=/home/firefox/MyProgram/fire.login.name ${Variable#patte ...