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

扩展 Eclipse 辅助和规范开发流程

阅读更多
本如果市场上的开发工具不能满足您的需要,而自己开发 IDE 又不太现实,那本文就是您所需要的,它介绍了如何扩展 eclipse JDT 来辅助规范你的项目开发流程和帮助约束你的代码规范。

<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->

一.前言

你的小组的人员是否不按照你制订的开发流程和代码规范来开发? 你的小组的成员经常变化,经常要对新手讲述什么是 Struts,什么是MVC? 已有的开发工具的功能不能满足你的需要?

如果你遇到上述问题,请看看本文,虽然它不一定能解决好你的问题,但至少它回给你一定的启发的。本文从实际案例触发,深入浅出,图文并茂向您描述了如何利用 Eclipse 平台规范你小组的开发流程,并且帮助新手快速融入开发中。

阅读本文,最好具有 J2EE 开发、Eclipse 平台和插件开发、Eclipse 平台 JDT 插件扩展和 Struts 相关知识。

 




回页首

 

二.实施整体描述

Eclipse 虽然是一个开源的平台,但是现如今其功能功能已经不输给任何开发工具,借助 eclipse 自带的 JDT 和各种第三方的插件,Eclipse 成为最流行的开发工具之一。


Eclipse 已经拥有软件开发,测试,文档,协作等能力,它已经能融入软件开发的整个流程中了。

让我们从一个实际的案例例谈起,看看我们是如何扩展 Eclipse 来辅助和规范我们的开发工作的。这是一个电力公司销售分析系统,里面有众多的各种各样的分析主题,例如要分析一个电力公司的销售情况,用户可以选择时间范围来分析公司的销售情况,如下图所示:


我们的小组在开发一个主题的流程大致是这样的:


编写扩展 JDT 的插件辅助开发流程

我们的开发流程从本质上来说,还是和上面一样,但是由于我们使用了 wizards 和扩展了 JDT 来辅助我们完成工作,那么实际开发者的开发流程会简化了,如下:


核心是扩展了 JDT 插件,把开发的流程集中在一个 Wizard 完成。

首先,让我们看看实际的效果,然后再深入说明和讲解。

1.在 eclipse 平台中单击开始->新建->J2EE 开发包->开发新的分析主题菜单。

如下图所示:


2.首先显示的是生成 Action 类的界面,它扩展了 JDT 插件的功能来允许程序员的输入客户容许的查询条件,而且它已经把父类设定为了可以看到父类 org.apache.struts.action.Action,这是 Struts 的要求.这再后面是用来自动生成 FormBean,和 Jsp 表单用的。


3.单击next,在这里输入SQL,并且可以直接测试。参数用?代替。小组成员可以直接在这里直接编写,测试SQL,再最后会自动生成Java代码。


4.如果没有错误,单击 finish 按钮。会自动生成 Jsp,Action 的骨架和基本功能代码。自动生成的 Jsp 表单,自动生成的 Action 和自动生成的现实查询结果的 Jsp。由于这里各个项目完全不同,建立都使用模板引擎这样随时修改模板就不用修改为 Java 代码了。

大体的结构如下,有两个 jsp,一个 anction:

 

5.根据实际情况修改骨架,运行,并且测试一下效果。

 




回页首

 

三.如何开发

1.首先是如何开发 Eclipse 中的 Wizard 。

这里我不从头介绍如何开发 Wizard,如果您对如何开发 Wizard 尚且一无所知,请参考 Eclipse.org 上来自 Doina Klinger 的文章: http://www.eclipse.org/articles/Article-JFace%20Wizards/wizardArticle.html ,此文 Step by Stey 的介绍了如何创建 Eclipse 的 wizard,和各种细节知识。

首先,看看我们插件的 plugin.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
     <extension
         point="org.eclipse.ui.newWizards">
      <category
 
            name="北京能博译码J2EE开发包"
            id="net.sf.yangtze.pdpf"/>
      <wizard
            class="net.sf.yangtze.pdpf.wizards.NewSubjectWizard"
            icon="icons/sample.gif"
            category="net.sf.yangtze.pdpf"
            name="开发新的分析主题"
            id="net.sf.yangtze.pdpf.wizards.NewSubjectWizard"/>
   </extension>
</plugin>

 

实现它的类 net.sf.yangtze.pdpf.wizards.NewSubjectWizard 继承自 org.eclipse.jface.wizard.Wizard 类,它有几个重要的方法:

addPage - 向 Wizard 添加页面,就是那些可以通过 next>,<back 浏览的页面。

FinishPage - 当用户点击 finish 的时候程序完成的工作。在我们的插件中就是完成自动生成 jsp,Action 的工作,把这些代码放在FinishPage 方法即可。

我们有两个 Page 一个用来输入和测试 SQL 语句,一个用来定制 Action 和可以输入的参数。

2.然后是如何从 JDT 扩展。

这部分现成资料不多,所以要稍微探讨一下。经常使用 Eclipse 开发 java 的程序员应该非常熟悉 JDT,实际上 Eclipse 平台可以用来开发任何语言的,它并不是一个 Java IDE,Java IDE 的功能是通过 JDT 插件完成的,在 Eclipse 的世界中一切都是插件。

在开发 Java 的时候,有许多的 Wizard 来辅助我们完成编码工作,如新建类,接口,如下图:

 

而且它里面有很多辅助工作,如你点击超类的时候,有一个帮助你输入超类名称的窗口会弹出来,在里面你并不需要输入类的完整的名称,它会自动提示。接口和包都有类似的辅助输入的功能。


我使用这些功能觉得很方便和习惯,所以我希望我的插件在创建 Action 的时候也能有类似的功能,而我不想自己再重新造个轮子(而且这个工作可不轻松),所以我就得从 JDT 中扩展,而不使用标准的 org.eclipse.jface.wizard.Wizard 类。

在传统的 wizard 中我们使用 org.eclipse.jface.wizard.Wizard 和 org.eclipse.jface.wizard.WizardPage 类,但如果你希望继承 JDT 的功能必须对应使用 org.eclipse.jdt.internal.ui.wizards.NewElementWizard 和 org.eclipse.jdt.ui.wizards.NewTypeWizardPage 类。

NewElementWizard 也是继承自 Wizard,它只是做了一些检查是不是 Java 项目等工作,Eclipse 中新建类,和接口 Wizard 都是从这个类基础发展而来的。内容丰富的是 org.eclipse.jdt.ui.wizards.NewTypeWizardPage 类,它包含了浏览项目,浏览超类,接口等功能,而且提供了丰富的方法来构建你的 Java 类型,例如添加方法,添加 import 等,更多内容可以参考自带的 API doc 文件,一幕了然。

可以看看我上面插件中的例子:

		public void createControl(Composite parent) {
        initializeDialogUnits(parent);
        Composite composite = new Composite(parent, 0);
        int nColumns = 4;
        GridLayout layout = new GridLayout();
        layout.numColumns = nColumns;
        composite.setLayout(layout);
	//上图中的 source folder 控件
        createContainerControls(composite, nColumns);
	//Package
        createPackageControls(composite, nColumns); 
	//一个分割线
        createSeparator(composite, nColumns);
	
        createTypeNameControls(composite, nColumns);
        createModifierControls(composite, nColumns);
	//父类的选择控件
        createSuperClassControls(composite, nColumns);
        //接口选择控件
        createSuperInterfacesControls(composite, nColumns);
        //
        createSeparator(composite, nColumns);
        //我们扩展的控件
        creatStrutsControls(composite, nColumns);
        setSuperClass("org.apache.struts.action.Action", true);
        setControl(composite);
	}
	

 




回页首

 

总结

Eclipse 的强大在于它容许插件扩展其它插件,利用 JDT 你完全可以开发出一个符合自己要求的快速开发工具,而并不需要非常多的代码。有兴趣的读者可以参考看一下 Lomboz 项目,一个为 Eclipse 开发 J2EE 的插件,它的功能强大,但实际它的代码却并不多。

扩展 Eclipse 完全可以构建属于你自己的快速开发工具,它可以显著的提高工作效率。而且任何一个新手都可以快速上手,你的知识被整个项目组成员共享,这减少了 Java 所被诟病的复杂。就我的例子来说在我的项目组中,新员工,只需要基本的 Java 和 SQL 知识,根本不用去从头学习 Struts,MVC,他们可以有更多的时间为用户开发更多的功能,而不需要为工具,框架所困扰。 希望本文能起到抛砖引玉的作用,更多的国内开发人员能融入的 Eclipse 的世界中来。

分享到:
评论

相关推荐

    Eclipse – 整合开发工具

    为了提高开发效率,Eclipse提供了代码重构、自定义代码格式、产生getter与setter等辅助功能。代码重构功能让开发者可以安全地修改代码结构而不改变外部行为。此外,开发者还可以设置代码风格和格式,以符合团队的...

    JCOP Eclipse javacard 插件

    总之,JCOP Eclipse javacard 插件是Java Card开发人员的得力助手,它简化了开发流程,提高了开发速度,使得在Eclipse中进行JCOP应用的开发变得更加便捷和高效。对于那些致力于智能卡安全解决方案和嵌入式Java应用的...

    Eclipse的JavaScript插件 JSEditor.7z

    3. **错误检查和警告**:JSEditor具备实时语法检查功能,能够在编写代码的过程中发现潜在的错误和不规范的写法,给出相应的警告或错误提示。 4. **代码格式化**:该插件还提供了代码格式化工具,可以按照预设的代码...

    用Eclipse进行XML开发

    虽然Eclipse 本身不直接支持XML(可扩展标记语言)的编辑,但它作为一个强大的、灵活的开发平台,允许开发者通过安装各种插件来增强其功能,从而实现对XML的支持。这使得Eclipse 成为了进行XML开发的理想选择之一。 ...

    利用jboss 在 Eclipse IDE 开发

    ### 利用JBoss在Eclipse IDE开发J2EE Web Application ...综上所述,JBoss Eclipse IDE为开发者提供了一个强大而便捷的开发环境,不仅简化了J2EE Web Application的开发流程,还大大提升了开发效率。

    Eclipse插件EMP的操作

    它不仅简化了开发流程,还大大提高了代码的质量和可维护性。对于想要提升开发效率和代码质量的开发者来说,掌握EMP的使用方法是非常有价值的。在未来的学习和实践中,不断探索和应用EMP的各项功能,将会帮助开发者更...

    01-23.Eclipse、MyEclipse开发工具.doc

    MyEclipse是在Eclipse基础上增加的商业插件,特别适合于Java EE应用开发,它提供了丰富的功能来简化Web应用程序的创建和部署过程。 **特点**: - **商业化**:MyEclipse是一款商业化的插件,部分高级功能需要购买...

    Eclipse常用插件集合

    为了提高开发效率和用户体验,Eclipse支持安装各种插件,这些插件可以扩展其功能,涵盖代码编辑、调试、版本控制、项目管理等多个方面。本资源主要关注的是Eclipse常用插件的集合,由于文件大小的限制,这些插件被...

    新建文件夹_java_Eclipse_

    Eclipse则是一款强大的开源IDE,支持多种编程语言,但特别适合Java开发,拥有丰富的插件系统和强大的代码辅助功能。 **Java编码规范** Java编码规范是程序员遵循的一套规则和约定,以保持代码的整洁和一致性。这些...

    eclipse的jetty插件

    这个插件极大地简化了开发流程,提高了开发效率,特别是在进行快速迭代和调试时。 首先,我们来了解一下Jetty本身。Jetty是一个开源的、轻量级的HTTP服务器和Servlet容器,广泛应用于各种Java Web应用。它支持最新...

    Eclipse Plugin for fold/unfold develpoment

    开发这样的插件需要对Eclipse的Plugin Development Environment (PDE)有深入理解,包括插件元数据、扩展点和实现类。 2. **内容辅助**:在实现折叠和展开功能时,需要提供一种方式来识别哪些代码段可以被折叠。这...

    Jbolt插件 Eclipse版

    **Jbolt插件Eclipse版** 是一个专为Eclipse集成开发环境设计的实用工具,主要针对Java开发者,特别是那些使用Jfinal框架...对于Jfinal框架的使用者来说,这是一个不可或缺的辅助工具,值得在日常开发中广泛推广和应用。

    EclipseUML插件

    Eclipse UML 插件是针对 Eclipse 集成开发...总的来说,Eclipse UML 插件是软件开发过程中一个强大的辅助工具,尤其是对于那些采用面向对象设计和 UML 方法的团队,它能提升设计质量,促进团队沟通,并加速开发进程。

    Axis2的eclipse插件

    总的来说,Axis2的Eclipse插件是Web服务开发的强大辅助工具,它简化了开发流程,提高了开发者的生产力,对于熟悉Eclipse环境的开发者来说,是一个不可或缺的工具集。通过深入了解和熟练使用这两个插件,开发者可以更...

    eclipse uml2.0 插件

    总的来说,Eclipse UML2.0插件是软件开发过程中的一个重要工具,它简化了UML2.0模型的创建和管理,促进了软件设计的可视化和规范化,从而提高了团队协作的效率和项目的成功率。对于理解和应用UML2.0建模方法的开发者...

    个人常用的eclipse插件

    Eclipse作为一款广泛应用的Java集成开发环境(IDE),其强大的可扩展性使得用户能够通过安装各种插件来满足个性化需求。本文将深入探讨“个人常用的Eclipse插件”,特别是其中的Freemarker插件,以及如何利用它来...

    spket IDE Eclipse插件

    总的来说,Spket IDE作为一款Eclipse插件,以其强大的JavaScript开发支持、高效的代码辅助功能以及丰富的特性,为开发者提供了优秀的开发环境,大大提升了开发效率。如果你是一名JavaScript开发者,那么Spket IDE...

    Eclipse使用Corba的插件文件

    通过安装并使用这些插件,Eclipse能够为开发人员提供一套完整的CORBA开发环境,简化了分布式应用程序的开发流程。无论你是新手还是经验丰富的开发者,Eclipse的Corba插件都能帮助你更高效地进行CORBA项目开发。

    基于Eclipse的职工医疗报销辅助系统的设计与实现.rar

    总的来说,"基于Eclipse的职工医疗报销辅助系统"是一个综合性的IT项目,涵盖了软件开发的全生命周期,包括需求分析、设计、编码、测试和部署。通过这个系统,我们可以深入理解如何利用现代技术解决实际问题,提升...

Global site tag (gtag.js) - Google Analytics