`
chenzhou123520
  • 浏览: 4260898 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

从工作开始,经历了几个项目的开发,现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范。俗话说约定优于配置,但是在执行过程中往往发现效果不是很好(主要是指编码规范这一方面)。所以我们不得不采取一些措施来协助我们统一项目开发人员的编码风格。主要包括三个方面:设置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文件注释)

/**
 * Project Name:${project_name}
 * File Name:${file_name}
 * Package Name:${package_name}
 * Date:${date}${time}
 * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.
 *
 */

Comments-->Types(Java类注释)

/**
 * ClassName: ${type_name} <br/>
 * Function: ${todo} ADD FUNCTION. <br/>
 * Reason: ${todo} ADD REASON(可选). <br/>
 * date: ${date} ${time} <br/>
 *
 * @author ${user}
 * @version ${enclosing_type}${tags}
 * @since JDK 1.6
 */

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

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

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

/**
 * Creates a new instance of ${enclosing_type}.
 *
 * ${tags}
 */

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

/**
 * ${enclosing_method}:(这里用一句话描述这个方法的作用). <br/>
 * ${todo}(这里描述这个方法适用条件 – 可选).<br/>
 * ${todo}(这里描述这个方法的执行流程 – 可选).<br/>
 * ${todo}(这里描述这个方法的使用方法 – 可选).<br/>
 * ${todo}(这里描述这个方法的注意事项 – 可选).<br/>
 *
 * @author ${user}
 * ${tags}
 * @since JDK 1.6
 */

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

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

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

/**
 * ${tags}
 * ${see_to_target}
 */

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

/**
 * ${bare_field_name}.
 *
 * @return  the ${bare_field_name}
 * @since   JDK 1.6
 */

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

/**
 * ${param}.
 *
 * @param   ${param}    the ${bare_field_name} to set
 * @since   JDK 1.6
 */

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

/**
 * Project Name:${project_name}
 * File Name:${file_name}
 * Package Name:${package_name}
 * Date:${date}${time}
 * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.
 *
*/
${filecomment}

${package_declaration}
/**
 * ClassName:${type_name} <br/>
 * Function: ${todo} ADD FUNCTION. <br/>
 * Reason:	 ${todo} ADD REASON. <br/>
 * Date:     ${date} ${time} <br/>
 * @author   ${user}
 * @version  
 * @since    JDK 1.6
 * @see 	 
 */
${typecomment}
${type_declaration}

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

// ${todo} Auto-generated method stub
${body_statement}

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

${body_statement}
// ${todo} Auto-generated constructor stub

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

return ${field};

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

${field} = ${param};

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

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

其中codetemplates.xml内容如下:

<?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">/**
 * ${bare_field_name}.
 *
 * @return  the ${bare_field_name}
 * @since   JDK 1.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">/**
 * ${param}.
 *
 * @param   ${param}    the ${bare_field_name} to set
 * @since   JDK 1.6
 */</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">/**
 * Creates a new instance of ${enclosing_type}.
 *
 * ${tags}
 */
</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">/**
 * Project Name:${project_name}
 * File Name:${file_name}
 * Package Name:${package_name}
 * Date:${date}${time}
 * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.
 *
 */</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">/**
 * ClassName: ${type_name} &lt;br/&gt;
 * Function: ${todo} ADD FUNCTION. &lt;br/&gt;
 * Reason: ${todo} ADD REASON(可选). &lt;br/&gt;
 * date: ${date} ${time} &lt;br/&gt;
 *
 * @author ${user}
 * @version ${enclosing_type}${tags}
 * @since JDK 1.6
 */</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">/**
 * ${field}:${todo}(用一句话描述这个变量表示什么).
 * @since JDK 1.6
 */</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">/**
 * ${enclosing_method}:(这里用一句话描述这个方法的作用). &lt;br/&gt;
 * ${todo}(这里描述这个方法适用条件 – 可选).&lt;br/&gt;
 * ${todo}(这里描述这个方法的执行流程 – 可选).&lt;br/&gt;
 * ${todo}(这里描述这个方法的使用方法 – 可选).&lt;br/&gt;
 * ${todo}(这里描述这个方法的注意事项 – 可选).&lt;br/&gt;
 *
 * @author ${user}
 * ${tags}
 * @since JDK 1.6
 */</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">/**
 * ${todo} 简单描述该方法的实现功能(可选).
 * ${see_to_overridden}
 */</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">/**
 * ${tags}
 * ${see_to_target}
 */</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">/**
 * Project Name:${project_name}
 * File Name:${file_name}
 * Package Name:${package_name}
 * Date:${date}${time}
 * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.
 *
*/
${filecomment}

${package_declaration}
/**
 * ClassName:${type_name} &lt;br/&gt;
 * Function: ${todo} ADD FUNCTION. &lt;br/&gt;
 * Reason:	 ${todo} ADD REASON. &lt;br/&gt;
 * Date:     ${date} ${time} &lt;br/&gt;
 * @author   ${user}
 * @version  
 * @since    JDK 1.6
 * @see 	 
 */
${typecomment}
${type_declaration}
</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">
</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">
</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">
</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">
</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">
// ${todo} Auto-generated catch block
${exception_var}.printStackTrace();
</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">
// ${todo} Auto-generated method stub
${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">
${body_statement}
// ${todo} Auto-generated constructor stub
</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就可以方便地生成我们自定义的注释,开发人员也容易接受!

25
1
分享到:
评论
1 楼 at1943 2012-08-08  
不错,公司应该有这样的规范。引用你的做自己的规范吧

相关推荐

    eclipse-编码规范系列(一):Eclipse Code Templates设置 - CSDN博客1

    此外,Eclipse还支持导入和导出模板配置,通过点击"Import"按钮,可以导入预先定义好的`codetemplates.xml`文件,这使得团队成员之间可以共享和应用相同的编码规范。 除了Code Templates,Eclipse还提供了`Eclipse ...

    Eclipse Code Templates

    Eclipse Code Templates是Eclipse集成开发环境(IDE)中的一个重要特性,它允许程序员自定义代码片段,以便在编写代码时快速插入常用的代码结构。通过使用模板,开发者可以提高编码效率,减少重复工作,并保持代码的...

    eclipse_codetemplates.rar

    "eclipse_codetemplates.rar"是一个压缩包,其中包含了自定义的Eclipse代码模板,这些模板可以帮助开发者快速编写符合特定注释风格的代码,提高开发效率并保持代码一致性。 在Eclipse中,代码模板(codetemplates)...

    eclipse编码规范codetemplates和formatter

    `eclipse编码规范codetemplates和formatter`正是针对这一需求而设定的两个关键配置。 **1. Eclipse Code Templates (codetemplates.xml)** Code Templates是Eclipse中的一个特性,允许开发者定义代码段模板,以便...

    程序员必备-codetemplates.zip

    Eclipse编码规范主要包括三个方面:设置Code Templates、Eclipse formatter、Checkstyle, 本篇主要介绍如何设置Code Templates,具体步骤如下: 打开Window-&gt;Preferences-&gt;Java-&gt;Code Style-&gt;Code Templates: ...

    java编码规范 codeTemplates

    `codeTemplates`文件通常包含预设好的模板,可以自定义设置,例如当创建新的类、方法或变量时,IDE会自动插入这些模板,从而遵循设定的编码规范。在Eclipse、IntelliJ IDEA等集成开发环境中,用户可以根据团队的编码...

    eclipse codestyle和formate

    - Codestyle,又称为编码规范,是一系列关于命名约定、注释规则、空格和缩进等编程习惯的集合。Eclipse允许用户自定义这些规范,以便与团队共享并强制执行。 - Codetemplates是 Codestyle 的一部分,它定义了代码...

    编码规范及eclipse设置

    本文将围绕“编码规范及Eclipse设置”这一主题,深入探讨相关知识点,并结合提供的文件进行详细说明。 首先,编码规范是开发者遵循的一套规则,用于保持代码的一致性和可读性。它包括但不限于命名规则(如变量、...

    Eclipse代码注释模板——code templates

    Eclipse作为一款广泛应用的Java集成开发环境(IDE),提供了强大的代码注释模板功能,可以帮助开发者快速生成标准化的注释,提高编码效率。本篇将详细介绍Eclipse中的代码注释模板——code templates,并基于提供的...

    java编码规范,eclipse 导入xml,有说明导入方式

    Java编程语言以其强大的功能和广泛的应用领域而备受...对于大型项目和团队而言,统一的编码规范和工具设置是保证项目顺利进行的基础,因此理解和实践"华为编码规范"以及正确导入Eclipse的XML配置文件显得尤为重要。

    codeFormatter和codeTemplates模板

    Eclipse作为一款强大的Java集成开发环境(IDE),提供了许多工具来帮助开发者保持代码整洁和规范,其中codeFormatter和codeTemplates是两个非常重要的功能。 codeFormatter是Eclipse内置的一种代码格式化工具,它...

    支持Eclipse的code Template。 符合java编程规范。精华哦

    在`codetemplates.xml`文件中,我们可以看到一系列的XML标签,它们定义了模板的结构和内容。例如,`&lt;template&gt;`标签表示一个模板,`name`属性用于指定模板的名称,`context`属性定义了模板适用的上下文(如"JAVA_...

    eclipse编码规范

    总的来说,Eclipse的编码规范功能强大而灵活,通过合理配置`formatter.xml`和`codetemplate.xml`,可以大大提高代码的可读性和团队协作效率。养成良好的编码习惯,让代码如同艺术一般,既美观又实用,这将对你的职业...

    eclipse注释替换已经编码格式调整

    使用编码格式规范模版: 打开 Eclipse -&gt; Window -&gt; Preferences -&gt; Java -&gt; Code Style--&gt; Formatter 右侧窗口有import按钮,点击import选择 format.xml文件打开,然后点击下方apply 再点击OK则已经使用模版

    eclipse code formatter

    通过访问这个博客,你可以学习到如何配置Eclipse以符合特定的编码规范,比如Google Java Style Guide或Oracle Code Conventions。这些规范涵盖了命名规则、注释样式、代码布局等多个方面。 在Eclipse中,你可以按照...

    code templates.zip

    在Eclipse的首选项设置(Preferences)里,找到"Java" -&gt; "Code Style",分别对应导入"Code Formatter"和"Code Templates"。导入后,Eclipse会立即应用新的格式化规则和模板。 在团队开发中,统一的代码风格和模板...

    eclipse代码规范文件

    2. `winit-codetemplates.xml`:这是Eclipse的代码模板文件,允许开发者定义代码片段,以快速插入常见的代码结构。例如,它可以包含类、方法、循环、条件语句的模板,只需输入几个关键字,然后通过自动补全功能快速...

Global site tag (gtag.js) - Google Analytics