企业Java网站开发工具

news/2024/5/15 11:27:33/文章来源:https://blog.csdn.net/wu560130911/article/details/8828046

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_819005.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高并发高流量网站架构

Web2.0的兴起,掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们。但Web2.0以用户为导向的理念,使得新生的网站有…

微信小程序--云开发静态网站h5跳小程序

微信小程序–云开发静态网站h5跳小程序 静态网站h5跳小程序 ----首先需要开通小程序的静态网站功能 1.开通静态网站、绑定自定义域名,需要在「微信开发者工具 - 云开发 - 更多 - 静态网站」里进行,才能拥有免鉴权的能力。 (1) 打开小程序开发工具&…

思维导图形式带你读完《大型网站技术架构》中

下面所有图片原图及思维导图源文件和软件,欢迎关注我的微信公众号:"Java面试通关手册" 后台回复 “大型网站技术架构” 免费领取。 5 万无一失:网站的高可用架构 6 永无止境:网站的伸缩性架构 7 随机应变:网站的可扩展架…

使用ehcache缓存页面、ExpiresFilter添加Expires头,大幅提升网站性能

版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/80236280 前几天把网站部署到服务器上后发现访问速度和龟速差不多,内心感到非常焦虑——之前并未做过这方面的尝试,要解决问题实在有些头…

网站流量日志数据自定义采集

1. 原理分析首先,用户的行为会触发浏览器对被统计页面的一个http请求,比如打开某网页。当网页被打开,页面中的埋点javascript代码会被执行。埋点是指:在网页中预先加入小段javascript代码,这个代码片段一般…

Slog44_支配vue框架初阶项目之博客网站-单页-客户端与服务端上传功能关联

ArthurSlogSLog-44Year1GuangzhouChinaAug 22th 2018GitHub掘金主页简书主页segmentfault人们会渐渐爱上压迫 崇拜那些使他们丧失思考能力的工业产物 开发环境MacOS(High Sierra 10.13.5) 需要的信息和信息源: HTTP概述HTTP互联网是如何工作的万维网是如何工作的统一…

《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构

此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。 首先,所谓网站的伸缩性,指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力。在整个互联网行…

(SpringMvc,BootStrap,Mysql)酒店旅游网站

【项目功能】 根据需求,确定系统采用JSP技术, SQL Server 2008作为数据库。整个系统要操作方便、易于维护、灵活实用。主要实现了个人中心、首页轮播管理、景区/线路管理、客户管理、酒店门票分类管理、酒店门票管理、帖子管理、帖子回复管理、售后维权…

我是计算机专业,技能一般,女生,大四,准备毕业设计,我想问是不是网站设计简单一些呢?

做网站吧。前端都是使用的htmljscss的方式做的,主要的区别来自于后台。后台可以选择语言比较多,java、python、php、asp其中php是最简单的。Php的环境搭建也简单,文件比较少。用php还不和java一样,java需要导包配置jdk等等&#x…

【计算机毕业设计】基于ssm家校通网站系统

源码交流、毕设帮助、技术指导,见文末。 随着网络技术的飞速发展,网络已渗透到全人类的各个方面,深刻影响着我们的生活和工作方式。家校通网站给教育带来了更广阔的发展空间。家校通网站有对部分类似网站进行分析,找到规律和方法…

【计算机毕业设计】基于springboot个人博客网站

所有的软件开发前都需要进行需求调研和分析,在个人博客系统系统中前台用户需要能够浏览已发布的博客文章,并能在文章底部进行评论互动,后台管理人员登录系统需要能够对系统功能方面的信息进行管理,针对个人博客系统的需求分析有以…

【计算机毕业设计】java ssm+jsp 旅游网站的设计与实现

本旅游管理系统主要包括系统用户管理模块、景点信息管理模块、变幻图管理、旅游线路管理、登录模块、和退出模块等多个模块。采用目前最流行的ssm框架结构和java中流行的ssm框架和myeclipse编辑器、MySQL数据库设计并实现的 。 本系统主要包含了等系统用户管理、景点信息管理…

【计算机毕业设计】java ssm+vue婚纱影楼摄影网站

源码交流及指导、毕设帮助 见文末 本站不同于其它摄影网站,本网站不但可以展示本店的摄影作品,更可以列出众多摄影套餐供用户选择预约,用户看中哪款套餐了,可以预约时间进行拍摄,即增加了店内本身的业务量,…

【计算机毕业设计】jsp+ssm某地区精准扶贫网站(可更改为任意地区)

本精准扶贫网站管理系统主要包括系统用户管理模块、捐赠信息管理模块、投诉信息管理、扶贫资讯管理、登录模块、和退出模块等多个模块,系统基于mvc设计模式,数据库选用的是Mysql数据库,采用Java语言中的SSM(springMvcspringMybatis)框架进行后端开发,JSP主要用于前端…

【计算机毕业设计】ssm+jsp二手车交易网站

毕设帮助、技术指导、源码交流,联系方式见文末。。 二手车交易网站采用B/S模式,促进了二手车交易网站的安全、质量、快捷的发展。传统的管理模式还处于手工处理阶段,管理效率极低,随着用户的不断增多,传统基于手工管理…

【计算机毕业设计】基于springboot的景区旅游网站

随着“互联网”加速与产业融合,数字经济已成为中国发展的新引擎。在旅游产业也不例外,相关数据显示,“互联网旅游”孕育一个新的庞大旅游市场。这个新型市场由网民购买力购买欲望组成。根据最新的互联网发展状况统计报告,截至今年…

【计算机毕业设计】基于java web的校友同学网站

校友资源是高校建设和校友个人发展的宝贵潜在财富,但是历届毕业生离校后,随着时间的推移以及生活繁忙的原因,他们渐渐的忽略了与校友们和母校的联系,基于这种现状,设计并实现B/S架构的校友信息系统应运而生。 校友同学…

3dsmax子菜单无法选择_向大疆无人机学习:在WordPress网站的divi主题中添加悬浮固定二级菜单...

我们WP花园为客户提供深度定制WordPress网站设计开发的过程中,经常会为购买了高级定制服务的客户提供一些个性化模块功能开发。最近,我们有一个WordPress网站建站客户,想要仿制大疆无人机产品详情页里面的固定菜单二级目录的样式,…

seo查询工具源码_SEO关键词查询工具,SEO辅助工具

上一篇给大家分享了四个好用的SEO工具,今天继续给大家推荐几个不错的网站。一:网站安全检测1:百度安全检测:这个是大家一定要熟悉的安全检测平台。已经引用腾讯、小红伞、金山、知道创宇的数据库,假设你的网站在搜索结…

php安装与下载,学习PHP网站开发 连载——PHPCMS的下载与安装详解

原标题:学习PHP网站开发 连载——PHPCMS的下载与安装详解首先是要下载,然后安装,才能在本地学习和调试1:下载PHPCMS官网地址:www.phpcms.cn接着点击:下载结果:解压缩:进入该目录&…