企业Java网站开发工具

作者:吴梦升

前言

有人说用Java开发网站的速度慢而且在美观上还没有C#好,但我个人认为使用Java开发项目可以做到快速开发和高质量开发,因为Java很多的框架和工具是开源的,而且对于项目本身最重要的也是速度和质量,没有速度和质量谈何项目。或许有人会说我不喜欢使用别人的框架或工具,我喜欢开发自己的工具,我只能说“不重复发明轮子”。

下面我说一个例子,这个例子是我从网上看到的。

小张是一家小型民营软件公司的程序员,他所在的公司要开发一个新的Web项目。经过协商,决定使用Spring、ibatis和Tapstry。Jar包去哪里找呢?公司里估计没有人把Spring、ibatis和Tapstry所使用的jar包一个不少地找出来。大家的做法是,先到Spring的官网上下载Spring的架包,然后去ibatis的网站上把所有列出来的jar包下载下来,对其他的也执行同样的操作。项目还没有开始,WEB-INF/lib下已经有近百个jar包了,带版本号的、有用的、没有的、相冲突的,怎么一个“乱”字了得。

在项目开发过程中,小张不时地发现版本错误和版本冲突问题,他只能硬着头皮逐一解决。项目开发到一半,经理法相最终部署的应用的体积实在太大了,要求小张去掉一些没用的jar包,于是小张只能加班加点地一个个删……

小张隐隐地觉得这些依赖关系需要一个框架或者系统来进行管理

小张喜欢学习流行的技术,前几年Ant十分流行,他学了,并成为了公司这方面的专家。小张知道,Ant打包,无非就是创建目录,复制文件,编译源代码,使用一堆任务,如copydir、fileset、classpath、ref、target,然后再jar、zip、war,打包成功了。

项目经理发话了:“兄弟们,新项目来了,小张,你来写Anr脚本!”

“是,保证完成任务!”,接着,小张继续创建一个XML文件。Target clean;target compile;target jar;……不知道他是否想过,在他写的这么多的Ant脚本中,有多少是重复的劳动,有多少代码会在一个又一个项目中重现。既然差不多,有些甚至完全一样,为什么每次都还要重新编写?

终于有一天,小张意识到了这个问题,想复用Ant脚本,于是在开会时他说:“以后就用我写的这个规范的Ant脚本吧,新的项目只要遵循我定义的目录结构就可以可。”经理听后觉得很多道理:“嗯,的确是个进步。”

这是新来的本科生发言了:“经理,用Maven吧,这个在开源社区恨流行,比Ant更方便。”小张一听很惊讶,Maven真比自己的“规范化Ant”强大?其实他不知道自己只是在重新发明轮子,Maven已经有一大把现成的插件,全世界都在用,你自己不用写任何代码!

为什么没有人说“自己写的代码最灵活,所以我不用Spring,我自己实现Ioc;我不用Hibernate,我自己封装JDBC”?

简介

在本节中,我主要介绍下目前开源社区以及企业开发的工具。

Maven

官网:http://maven.apache.org/

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。而我认为其最重要的特点之一是快速开发,其可以生产项目的原型(Archetype),如果前面故事讲里的小张发现Maven这个特点时,他一定会有相见恨晚的感觉,因为我也有这感觉。

Maven很容易掌握,我学会Maven只用了一天的时间,并且写出了自己的原型框架。使用Maven后,你会发现小张的很多问题都自然的解决了,比如架包问题、版本冲突问题和架包冗余问题等。而且使用Maven后,对某些框架的升级也非常简单。这里不详细介绍Maven,如需学习请自行查看相关资料。

使用了Maven,在开源社区和企业里就免不了需要安装自己的私服,供社区或企业内部使用,有关这部分请查看Nexus工具部分。

Nexus

官网:http://www.sonatype.org/nexus/

Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。Nexus支持WebDAV与LDAP安全身份认证。

这个是比较流行的私服工具,其功能简介如上所说。建议安装成服务,每次开机自动启动,默认占用的端口号是:8081。下面是我电脑上的运行效果图。

图1 Nexus主界面

图2 本地部署上去的架包

图3 中央仓库管理

Hudson

官网:http://hudson-ci.org/

作为最核心的敏捷实践之一——持续集成(Continuous Integration)越来越受到广大开发人员的喜爱和推崇。Hudson 是一个可扩展的持续集成引擎。在社区和企业里,项目都不是个人完成的,每个人完成相应的模块,然后提交到规定的服务器里。一般企业和社区都会派专人对全部提交的代码进行测试,然后对为通过的返回,然而这个既费人力有费时间。当选择使用Hudson工具时,会发现这一系列的工作可以自动的完成,而不需要人为干预,对于失败的测试可以通过邮件通知作者。

其主要的特点有:

·            易于安装-只要把hudson.war部署到servlet容器,不需要数据库支持。

·            易于配置-所有配置都是通过其提供的web界面实现。

·            集成RSS/E-mail/IM-通过RSS发布构建结果或当构建失败时通过e-mail实时通知。

·            生成JUnit/TestNG测试报告。

·            分布式构建支持-Hudson能够让多台计算机一起构建/测试。

·            文件识别- Hudson能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。

·            插件支持-Hudson可以通过插件扩展,你可以开发适合自己团队使用的工具。

下面是我电脑上的测试结果:

图 4 从svnserver上构建项目

图5 从本地私服里下载所需架包

图 6 自动编译项目

图7 测试项目

图8 代码质量管理平台

图9 生产代码报告

Sonar

官网:http://www.sonarsource.org/

Sonar是一个开源平台,用于管理Java源代码的质量。从Sonar 1.6 版本开始,Sonar从一个质量数据报告工具,转变成为现在的代码质量管理平台。

主要特点:

代码覆盖:通过单元测试,将会显示哪行代码被选中改善编码规则

搜寻编码规则:按照名字,插件,激活级别和类别进行查询

项目搜寻:按照项目的名字进行查询

对比数据:比较同一张表中的任何测量的趋势

下面是我电脑上的测试结果:

图10 项目报告

图11 项目代码报告

Eclipse

官网:http://www.eclipse.org/

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。

Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。 2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。

Eclipse的基础是富客户机平台(Rich Client Platform, 即RCP)。RCP包括下列组件:

·             核心平台(启动Eclipse,运行插件)

·             OSGi(标准集束框架)

·             SWT(可移植构件工具包)

·             JFace(文件缓冲,文本处理,文本编辑器)

·             Eclipse工作台(即Workbench ,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards))

Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。

Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语 言。 已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。

Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本内核包括:图形API (SWT/Jface), Java开发环境插件(JDT ),插件开发环境(PDE)等。

Eclipse由各种不同的计划组成。以下列出了部分计划。

·             Eclipse计划:本身包括Eclipse平台,Eclipse富客户端平台(RCP)和Java开发工具(JDT)。

·             Eclipse测试和性能工具平台(TPTP):提供一个允许软件开发者构建诸如测试调试、概况分析、基准评测等测试和性能工具的平台。

·             Eclipse Web工具平台计划 (WTP):用Java企业版Web应用程序开发工具来扩展Eclipse平台。它由以下部分组成:HTML、JavaScript、CSS、JSP、SQL、XML、DTD、XSD和WSDL的 源代码编辑器;XSD和WSDL的图形界面编辑器;Java企业版的“项目性质”(project nature)、建构器(builder)和模型(model),与一个Java企业版的导航(navigator);一个Web服务(Webservice)向导和浏览器,还有一个WS-I测试工具;最后是数据库访问查询的工具与模型。

·             Eclipse商业智能和报表工具计划(BIRT):提供Web应用程序(特别是基于Java企业版的)的报表开发工具。

·             Eclipse可视化界面编辑器计划(VEP):一个Eclipse下创建图形用户界面代码生成器的框架。

·             Eclipse建模框架(EMF):依据使用XMI描述的建模规格,生成结构化数据模型的工具和其他应用程序的代码。

·             图形化编辑器框架(GEF):能让开发者采用一个现成的应用程序模型来轻松地创建富图形化编辑器。

·             UML2:Eclipse平台下的一个UML 2.0元模型的实现,用以支持建模工具的开发。

·             AspectJ:一种针对Java的面向侧面语言扩展。

·             Eclipse通讯框架(ECF):专注于在Eclipse平台上创建通讯应用程序的工作。

·             Eclipse数据工具平台计划(DTP)

·             Eclipse设备驱动软件开发计划(DSDP)

·             C/C++开发工具计划(CDT):努力为Eclipse平台提供一个全功能C和C++的集成开发环境(IDE),它使用GCC作为编译器。

·             Eclipse平台COBOL集成开发环境子计划(COBOL):将构建一个Eclipse平台上的全功能COBOL集成开发环境。

·             并行工具平台(PTP):将开发一个对并行计算机架构下的一组工具进行集成的平行工具平台,而且这个平台是可移植的,可伸缩的并基于标准的。

·             嵌入式富客户端平台(eRCP):计划将Eclipse富客户端平台扩展到嵌入式设备上。这个平台主要是一个富客户端平台(RCP)组件子集的集合。它能让桌面环境下的应用程序模型能够大致同样地能运用在嵌入式设备上。

总结

上面仅介绍了部分比较重要工具。当你在开发时用到上述工具时,你会发现Java开发原来是那么高效快速。虽然我未在公司呆过,但我调查过我认识的已就业的学长,只要比较正规的公司一般都会集成以上工具(当然以上的工具都不是唯一的,有很多同类工具)。当做好一个项目,别人要你列出其的规范性和代码的安全性时,不管你怎么说,别人都不一定会信服你,但只要你把相应工具生成的结果给他看,里面包含各种测试结果的报表,别人不信服都难(当然也可以通过这个来规范自己的项目)。

企业Java网站开发工具相关推荐

  1. 第二章 java常用开发工具以及程序的编写

    2019独角兽企业重金招聘Python工程师标准>>> 第二章 java常用开发工具以及程序的编写 1. 程序的概念         2. java程序的开发的三个步骤        ...

  2. java 集成开发工具_最好的Java开发人员测试和集成工具

    java 集成开发工具 通过从您的应用程序学习企业APM产品,发现更快,更有效的性能监控. 参加AppDynamics APM导览! 无论您是刚刚起步还是已经从事了一段时间,使用正确的工具进行编程都可 ...

  3. 手机php网站开发工具,4款好用的网站开发工具推荐

    原标题:4款好用的网站开发工具推荐 1.Dreamweaver 工具简介: 老牌的网页编辑软件,功能非常强大,最大的优点是可视化编辑,还有错误提示,深受前端开发人员和网站开发人员欢迎!Dreamwea ...

  4. 数据分析师推荐的Java报表开发工具

    通常称为"支持Java的报表工具" ,其实就是非java报表工具,但可以从Java程序调用它.本文请企业的专业数据分析师,推荐几种主流的Java报表开发工具,分享一些如何选择Jav ...

  5. RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass

    安全研究人员在官方的 RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass.该工具的下载量高达 2800 万次,但这并不意味着下载的所有版本都存在后门,受影响的版本是 v3. ...

  6. 第11课:JSP指令 Include指令 Taglib指令 (JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)

    Include指令 JSP include 指令用于通知 JSP 引擎在翻译当前 JSP 页面时,将其他文件中的内容合并进当前 JSP 页面转换成的 Servlet 源文件中,这种在源文件级别进行引入 ...

  7. IntelliJ IDEA for Mac 2018.1.2 智能Java IDE开发工具 破解版下载

    IntelliJ IDEA for Mac 是一款聪明的 Java IDE,它擅长使用 Java,Scala 和 Groovy 开发企业,移动和 Web 应用,有所有最新的现代技术和框架安装即可使,非 ...

  8. java的开发工具 sublime

    java的开发工具 sublime 还有一种方法就是安装汉化版的 解压之后要删除个东西 这样能节省空间 用着也方便 下面箭头那个直接卸载就好了 当然要是麻烦或者找不到就不要删除了怕弄错了

  9. java的开发工具_Java中常用的开发工具有哪些

    Eclipse   据数据显示很多Java开发人员的Java开发工具便是Eclipse,这主要得益于Eclipse是一个开源的.可以基于Java的可扩展开发平台.Eclipse本身而言,它只是一个框架 ...

最新文章

  1. JCP:曝气生物滤池处理焦化废水过程中N2O和NO的产生机理与群落功能研究
  2. 编写一个关于小型界面文件。
  3. 数据库增删改查性能对比
  4. serialization机制
  5. 高tps、低延迟_如何在不到1ms的延迟内完成100K TPS
  6. shell中的常用通配符,字符类
  7. HSSFCellStyle.ALIGN_CENTER报错
  8. 06_jQuery_内容过滤
  9. 听说当今程序员很厉害?不,那是你不了解上古时期的那些神级操作
  10. C# 关于yield return的研究(转载)
  11. 自动驾驶——目标检测(Camera传感器)的学习笔记
  12. 第43条:掌握GCD及操作队列的使用时机
  13. c语言计算器小程序方案,C语言计算器小程序(源代码+实习报告).docx
  14. php网站整合ck播放器,wordpress主题整合ckplayer播放器
  15. 福州计算机专业的大学的校徽,如此好看的大学LOGO,有你的母校吗?
  16. 毕业设计 嵌入式 智能温控风扇系统
  17. java实用工具类——使用java代码实现ftp上传下载工具类
  18. 如何让excel表格排头一直都在_如何快速整理Excel表格?学会这一招整理表格无压力...
  19. 电脑主机电源与主板线的接法图解,小白与傻白甜必备
  20. 李沐的动手学深度学习环境配置

热门文章

  1. 虚幻引擎5改变了游戏
  2. 浙江省计算机应用能力二级考试难吗,浙江省计算机等级考试直接考二级难吗
  3. HBase表设计介绍
  4. Linux介绍及安装,以及JDK Tomcat Mysql安装
  5. Hexo搭建个人博客及next主题基本配置
  6. C语言else的用法与位置,else的用法总结大全
  7. Pat 04-树6. Huffman Codes (30)
  8. 【学习笔记】:PointNet的补充材料
  9. 9. Matlab仿真二阶弹簧阻尼系统
  10. 华中科技大电子信息与通信学院考研复试经验2021