值的关注的Java开源项目
名称
资料
概况
OFBiz
http://ofbizchina.com:8080/
http://www.ofbiz.org/
https://ofbiz.dev.java.net/
OFBiz是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。
OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具。包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等。
Hibernate
http://www.hibernate.org.cn/
http://forum.javaeye.com/
Hibernate是一个开放源代码的ORM(对象关系映射框架),它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
JAWE
http://jawe.objectweb.org/
http://www.huihoo.org/jawe/
基于Java的图形化工作流编辑器
。图形化工作流编辑器
。使用JAVA语言开发,开放源码
。严格遵循WFMC规范
。XPDL(XML Process Definition Language)WFMC的 XML 过程描述语言
。工作流定义文件保存在本地的XML文件中
Struct
Struts 就是基于J2EE 的 web 形式 MVC 模式实现,用以改善 web 系统的结构。
它主要由两大部分组成,其一是上面所说的改善web 系统结构的 MVC 框架部分。 另一部分是 Struts 的标签库,主要由 web
页面制作人员使用。
osworkflow
Turbine
Turbine是一个具有Servlet d eFramework,他提供Java开发者一个快速构建安全web应用系统的途径
JetSpeed
基于Turbine所架构的门户系统
Werkflow
Extra 3.0
Web构件平台
OpenCms
http://www.opencms.org/opencms/en
一个专业级的开源站点内容管理系统(Open Source Website Content Management System),让管理员不需要html知识就能轻松管理复杂的网站。OpenCms基于Java和XML技术,运行在完全开放的环境中,如Linux,Apache,Tomcat,MySQL。
JasperReports
http://jasperreports.sourceforge.net/
一个强悍的(纯Java)报表生成工具,将动态的内容分发到屏幕和打印机,或生成PDF,HTML,XLS,CSV,XML格式文件。
JFreeChart
http://www.jfree.org/jfreechart/index.html
free的Java的图表生成组件,可以创建饼图、曲线图、柱状图、甘特图等。当前最新版本为0.9.9,这里有一张JFreeChart生成的曲线图。
BIE(Business Integration Engine),
http://www.brunswickwdi.com/bie
一个完全基于Java跨平台的企业应用整合服务器,帮助企业交换不同平台上不同应用之间的数据。BIE是一个开源的项目,它的License比较灵活(也复杂),使用前请仔细阅读。
Petshop
http://pwp.netcabo.pt/lneves/tapestryapps/
一个由Tapestry+Hibernate+Mckoi等开源项目组成的宠物店应用,比较适合Tapestry初学者,当然也可以做为Hibernate或Mckoi的范例参考。
betterpetshop
https://betterpetshop.dev.java.net/
这里有一个由开源项目 Tapestry,Spring 和 Hibernate 实现的宠物店应用 betterpetshop,它在 Tapestry Petshop 基础上扩展而来,增加了 Spring 和 Hibernate。它为我们展示了基于 Struts 之外的另外一种优秀的组合方案。如果说你正希望用这个三个 Tapestry,Spring 和 Hibernate 框架来搭建自己的 J2EE 开发平台的话,可以参考参考。这里是这个宠物店的在线 demo。
Cayenne
http://objectstyle.org/cayenne/index.html
除 Hibernate 之外的另一个开源 O/R 框架 Cayenne ,被成功用于商业生产环境。NHL.com 就是使用的 Cayenne ,每天超过 5 million 次的访问量。最新的版本 Cayenne 1.0 Final ,值得关注。
Enhydra
http://enhydra.enhydra.org/
ObjectWeb 终于发布了 Enhydra 5.1 Final !!!Enhydra 是开放源代码的应用服务器(Application Server),集成了Open Source界很多其他的优秀软件,拥有优美的三层Web应用程序结构,提供了诸如DODS, Kelp等辅助程序设计工具,提高了程序设计的效率,是Web开发不可多得的利器。
mvnForum
http://www.mvnforum.com/
一个基于 Jsp/Servlet 开源论坛,支持7种数据库,对中文也有不错支持。虽比不上 Jive 和 Jute,但对普通用户来说已经够用了!
Jive
论坛
Jute
论坛
JSmooth
http://jsmooth.sourceforge.net/
经常在论坛上看见有人问如何将 Java 程序制作成 exe 文件。将 Java 程序封装成标准的windows .exe 可执行文件的工具很多,JSmooth 就是其中之一,该工具基于 GPL 发布。
Cewolf
http://cewolf.sourceforge.net/
Cewolf 提供一个基于 JFreeChart 的 taglib,使用 Cewolf 直接在 jsp 中生成图表就更简单了! 当前最新版本为0.9.3!
http://www.liferay.com/
一个界面非常漂亮,功能强大的 Portal。当前版本为 2.0.0-rc1
主要特点:
1、提供单一登陆接口,多认证模式(LDAP或SQL);
2、管理员能通过用户界面轻松管理用户,组,角色;
3、用户能可以根据需要定制个性化的portal layout;
4、能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JOnAS;
5、支持主流的数据库,如PostgreSQL,MySQL;
6、使用了第三放的开源项目,如Hibernate, Lucene, Struts;
7、支持包括中文在内的多种语言;
8、采用最先进的技术 Java, EJB, JMS, SOAP, XML;
Java IDE
右图是来自 QA Systems 的 Java IDE 使用调查显示结果,Eclipse 是众望所归,占了 45% 的份额。其次是鼎鼎大名的 Jbuilder 。
值得关注的另外一个 Java IDE 是 Netbeans ,除了已经提供中文版的 NetBeans IDE 下载以外,其站点已经开始中文版的建立(并非完全中文,如果你愿意协助,可以联系 nbmarketing@netbeans.org )。
另外,为了中文 NetBeans 用户交流方便,还增加了一个中文邮件列表 nbdiscuss_zh@netbeans.org ,并把 NetBeans 时事通讯月刊《萌芽》译成简体中文并发送至 nbdiscuss_zh@netbeans. org
。
JExcelApi
http://www.andykhan.com/jexcelapi/index.html
JExcelApi 用于对 Excel 的读写操作开源项目,基于 GPL 发布。以前曾简单试用过 JExcelApi ,使用简单而且对中文的支持不错。
JSP Tree Tag
http://www.jenkov.dk/projects/treetag/treetag.jsp
推荐一个 Jsp 标记库 JSP Tree Tag 。以前在一个项目中用 JavaScript 来显示树型结构,所有数据下载到客户浏览器,如果数据量大,显示出来花费的时间让人难以接受。如果用 JSP Tree Tag ,问题就解决了,它只把需要显示的部分送到客户浏览器。
http://sourceforge.net/projects/oreports和
http://sourceforge.net/projects/jasperedit
OpenReports 和 JasperEdit ,都是在 JasperReports 基础之上建立的简单实现。OpenReports 是基于 Web 的一个完整实例,支持 PDF,HTML 和 XLS 报表格式,由 WebWork,Hibernate 和 Velocity 开发完成,并且还提供一个整合了 Tomcat 的 OpenReports-Tomcat 文件下载,想得实在是周全。JasperEdit 则基于 Java/Swing 。
http://google-taglib.sourceforge.net/
一个开源 JSP Tag Library ,名字叫 Google Tag Library 。看名字就知道,该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。
http://www.jbpm.org/
某日看到介绍开源的工作流引擎达数十种,当然最有名的是 OFBiz 了,但很多人反映 OFBiz 比较复杂,难以掌握。在此推荐另外一个“最近很熱門的”(jini语)开源工作流引擎 jBpm,有兴趣且有时间的朋友研究一下吧!不过还有一个工作流引擎 OSWorkflow,但人们对这家伙评论似乎不高!
今天介绍两个 weblog 的开源项目吧!什么是 weblog ?A weblog, also known as a blog, is a public diary where you write things that you want to share with others, comment on items of interest to you, and link to recent reading on the web and other weblogs. 还不明白可以看看 jini 的 blog jini(99% jakarta)。第一个是 Roller,jroller 这个站点用的就是它。另外一个则是 SnipSnap,功能大同小异,但它的 logo 做的很漂亮。
对 JavaDoc 相信大家都知道而且正在使用它,今天推荐另外一个 JSPDoc。JSPDoc 为 jsp 文件提供一个说明注释文档,比如在一个 jsp 文件中使用哪些参数,使用哪些 session , import 哪些类,各个 jsp 文件之间的 form 和 link、include 关系等等都记录在 JSPDoc 之中。如果说你目前还有使用 jsp 做 web 开发,考虑使用 JSPDoc 吧,它会为你日后的维护带来方便的!
熟悉 UML 建模的人都应该知道 Rational Rose 和 Together 这两个工具,但不是人人都用的起。幸好有开源的建模工具 ArgoUML,ArgoUML 基于 BSD license 发布,支持九种标准的 UML diagrams。以前有简单用过 ArgoUML ,界面略显粗糙,但还好够用。这里有屏幕截图,可以看看。如果觉得 ArgoUML 界面不够漂亮,可以下载使用比他更帅的同胞兄弟 Poseidon 的 Community Edition。Poseidon 就是在 ArgoUML 之上发展起来的商业软件,不过他的 Community Edition 是免费的。
mvnForum 1.0.0 RC2 发布了,这个版本修复的一些 bug 和增加了少许功能。 mvnForum 也是我们一直给别人推荐的开源论坛,不过同时,也有一个计划中的 Java 开源论坛项目,如果你想贡献一点自己的力量,请参阅这里。
JUnit、HttpUnit 都是大家熟知的单元测试工具或框架。jWebUnit 是 web 应用的验收测试(acceptance test)框架,在 HttpUnit 和 JUnit 之上发展起来。还有 Jameleon 也是一个自动验收测试(acceptance tests)工具。当然还有 ASF 的 Cactus,用于测试服务端代码。在不同测试环境和测试条件下选择不同测试工具,他们都是不可缺少的,或许以后我们会专门搞一个单元测试专题。
在测试 J2EE 应用的时候,往往一个测试工具是不够的。这里推荐 TagUnit,TagUnit 是一个开源的测试框架,可以帮助你测试 JSP custom tags。该项目与近日发布了 tagunit 1.0,这里下载
EJOSA,企业级开源架构,利用 Enhydra 和 JOnAS 为开发者提供一个易用的开发架构。实际上使用 EJOSA 就是使用 Enhydra 和 JOnAS ,因为他们都是 EJOSA 的主要组件。EJOSA 作用是把一些组件都预先配置,并提供一个简单明了的目录结构,目的是减轻开发的难度,让开发者把重点放在业务处理上。
推荐一个简单但非常实用的 JSP 程序,开发该程序的作者为它取名 Jsp File Browser,用途是基于 web 方式远程访问和操作文件。Jsp File Browser 功能很多,比如文件上传下载、执行本地 shell 命令、将文件目录压缩下载、查看压缩文件内容和解压缩等等。
又推荐一个 blog,名字叫 Pebble,该项目充分利用了 Apache 的开源项目:Jakarta Commons BeanUtils, FileUpload and Logging, Jakarta Lucene, Jakarta log4j, Jakarta Standard Taglib。即使不需要 blog,拿来学习研究也很有帮助。
推荐一个由 jini (本站开源报作者)刚刚发起的开源项目 jCharon,该项目的目标是创造一个具有国际化与商业化的 Portal 及 Portlets。发起该项目的原因大致是现有的开源 portal 太简单, portlets 也不具有国际化, 所以建立了以冥王星 (pluto)的卫星 Charon 为名的开源项目。该项目的 License 是 Apache Foundation License,目前正在招募开发人员。这里是他们的交流论坛:http://www.jcharon.org/forum/
ITracker 基于 J2EE 的 issue/bug 跟踪系统,支持多用户、多项目、邮件通知等,更多特征请查看这里。这里还有一个在线 demo 可以试用,用户名和密码都是 guest。
介绍一个很错不的 Java 图表制作工具 JSynoptic,它把简单数据源(data source)根据你的需要自动生成各种类型的图表,比如柱状图、饼状图。这个工具核心是 JFreeChart,如果你仅仅需要一些统计图表,而不是做开发,那么这个工具将非常适合你。
eForum 基于 Expresso 框架的 Java-servlet 论坛,具有论坛的一般功能,比起 mvnForum 可能论坛管理功能上更强大一些。如果你要使用 eForum,那你得先对 Expresso 有足够的了解,这可能也是这个论坛的不足吧。如果你不知道 Expresso,你可以看看我们以前的介绍。
OpenReports 0.5.1 Released! OpenReports 提供基于 web 的报表解决方案,能生成 PDF, XLS, HTML, 和 CSV 文件。因为使用了 Hibernate,所以能和目前大多数主流的数据库连接。
Shocks 是一个开放源码的开发框架,目的是减少 Java Servlet 应用的复杂性。Shocks 并不是 MVC 模式的开发框架,而是采用下一代的体系结构,明确分开了内部各个组件的角色。该项目目前还不够成熟,但值得关注。这里只是简单介绍,如果你要快速了解 Shocks,请阅读 Shocks 的 FAQ,里面讲解了 Shocks 与 Struts,Webwork,Spring 的关系和差异。
因为 properties 的局限性,有时候得使用 XML 文件来定义应用的配置参数,jConfig 正是这样一个读写 XML 配置文件的工具。开发者在 Java 程序中只需要使用 get/set 方法就能读取修改 XML 文件中的配置参数。jConfig 目前只支持两层结构,最新版本为 2.3。
Magnolia 是一个由 obinary ltd. 开发的 java 开源 CMS(content-management-system),其优点是定制开发快速简单且维护容易,主要用到 Java, J2EE, XML, JSP, JCR, JSTL, HTML。
Pluto
推荐一个论坛 jGossip,jGossip 基于 Struts 开发,具有论坛的一般功能,遗憾的是数据库目前只支持 MySQL。
JFaceDbc
SQuirreL SQL 是一个数据库管理的 Java 客户端软件,提供了基础的管理功能,比如查看数据库结构,查询数据,执行 SQL 命令等。与 JFaceDbc 比较,两者功能大致相似,不过我个人更喜欢 JFaceDbc 多一点。
IzPack 是一个 Java 安装程序制作工具,能够制作一些简单的安装程序。制作出来的安装程序能在 Unix-like, MacOS X, Windows 等系统平台上运行。
XML 绑定框架太多,平时开发过程用一个自己熟悉的就够了。不过今天还推荐一个 XStream,XStream 吸引人的地方在于:使用起来非常简单,不需要预先生成相关的辅助类,不需要映射文件。当然,使用简单也注定了它只能处理简单结构的 XML 文件。
Tanghan 是一个 Hibernate 的 Eclipse 插件。Tanghan 为使用 Hibernate 开发提供了极大的便利,它根据数据库表结构生成相应的 Hibernate 映射文件和 POJO。
介绍一个 XML 的 Java 绑定框架吧,XJR,它的主要特点是不需要映射文件,用 XJRDTDCompiler 直接通过 DTD 文件生成 Java 文件,也可以用 XJRDTDCreator 对 Java 类处理生成 DTD 文件。当然也有不足,就是还不支持 Schema。
XmlBlaster 是 100% 基于 Java 的 MOM (Message oriented Middleware),通过 CORBA ,RMI,XmlRpc 相互通信,在 publishers 和 subscribers 之间传递 XML 文件格式的信息。在分布式的 c/s 架构体系中可以考虑 XmlBlaster。
AspectWerkz 是一个动态的轻量级 AOP/AOSD 的 Java 实现框架
MMBase 基于 MPL 的开源 CMS, 具有方便信息发布、维护等特点, 包含有新闻发布、论坛、聊天室等模块, 不过个人认为该项目最大优点还是丰富的文档, 这是在开源项目中很难得地方。
Hibernator,一个 Eclipse 插件,Hibernate 辅助开发工具。Hibernator 根据 POJO 实时生成 Hibernate 映射文件,在 POJO 中不需要标注额外的标记,可以大大降开发者的负担,但是不足的是,Hibernator 生成的映射文件并不完整,需要开发者手工做一些小小的补充。
JHotDraw
java开发的画图程序,开放原码
Spring
相对于EJB来说,Spring是一个轻量级的J2EE应用开发框架。这里提到的轻量级指的是Spring框架本身,而不是说Spring只能适用于轻量级的应用开发。Spring的轻盈体现在其框架本身的基础结构以及对其他应用工具的支持和装配能力,与EJB这种庞然大物相比,Spring使我们把各个技术层次之间的风险降低。一个比较恰当的比喻就是“我们要钉几个钉子,为了完成这个目的,锤子生产商生产了大大小小一系列的锤子,每个锤子都有一套复杂的使用方法,用来钉某种特别的钉子,结果令我们头疼不堪。解决锤子过多的问题,通过spring,我们可以使用几种锤子,但用起来象是只有一个锤子”。(
Jive
基于jsp/servlet的一套论坛系统
Tapestry
“面向对象web应用框架”,它使用组件对象模型(而非脚本)来创建具有高度动态性和交换性的web页面