值的關注的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!
Liferay Enterprise Portal
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 下載以外,其站點已經開始中文版的建立(並非完全中文,如果你願意協助,可以聯系 [email protected] )。另外,為了中文 NetBeans 用戶交流方便,還增加了一個中文郵件列表 [email protected] ,並把 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 ,問題就解決了,它只把需要顯示的部分送到客戶浏覽器。
OpenReports 和 JASPerEdit
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 。
Google Tag Library
http://google-taglib.sourceforge.Net/
一個開源 JSP Tag Library ,名字叫 Google Tag Library 。看名字就知道,該標記庫和 Google 有關。使用該標記庫,利用 Google 為你的網站提供網站查詢,並且可以直接在你的網頁裡面顯示搜查的結果。
jBpm
http://www.jbpm.org/
某日看到介紹開源的工作流引擎達數十種,當然最有名的是 OFBiz 了,但很多人反映 OFBiz 比較復雜,難以掌握。在此推薦另外一個“最近很熱門的”(jini語)開源工作流引擎 jBpm,有興趣且有時間的朋友研究一下吧!不過還有一個工作流引擎 OSWorkflow,但人們對這家伙評論似乎不高!
Roller
SnipSnap
今天介紹兩個 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 做的很漂亮。
JSPDoc
對 JavaDoc 相信大家都知道而且正在使用它,今天推薦另外一個 JSPDoc。JSPDoc 為 jsp 文件提供一個說明注釋文檔,比如在一個 jsp 文件中使用哪些參數,使用哪些 session , import 哪些類,各個 jsp 文件之間的 form 和 link、include 關系等等都記錄在 JSPDoc 之中。如果說你目前還有使用 JSp 做 web 開發,考慮使用 JSPDoc 吧,它會為你日後的維護帶來方便的!
ArgoUML
熟悉 UML 建模的人都應該知道 Rational Rose 和 Together 這兩個工具,但不是人人都用的起。幸好有開源的建模工具 ArgoUML,ArgoUML 基於 BSD license 發布,支持九種標准的 UML diagrams。以前有簡單用過 ArgoUML ,界面略顯粗糙,但還好夠用。這裡有屏幕截圖,可以看看。如果覺得 ArgoUML 界面不夠漂亮,可以下載使用比他更帥的同胞兄弟 Poseidon 的 Community Edition。Poseidon 就是在 ArgoUML 之上發展起來的商業軟件,不過他的 Community Edition 是免費的。
mvnForum
mvnForum 1.0.0 RC2 發布了,這個版本修復的一些 bug 和增加了少許功能。 mvnForum 也是我們一直給別人推薦的開源論壇,不過同時,也有一個計劃中的 Java 開源論壇項目,如果你想貢獻一點自己的力量,請參閱這裡。
jWebUnit
JUnit、HttpUnit 都是大家熟知的單元測試工具或框架。jWebUnit 是 web 應用的驗收測試(acceptance test)框架,在 HttpUnit 和 JUnit 之上發展起來。還有 Jameleon 也是一個自動驗收測試(acceptance tests)工具。當然還有 ASF 的 Cactus,用於測試服務端代碼。在不同測試環境和測試條件下選擇不同測試工具,他們都是不可缺少的,或許以後我們會專門搞一個單元測試專題。
TagUnit
在測試 J2EE 應用的時候,往往一個測試工具是不夠的。這裡推薦 TagUnit,TagUnit 是一個開源的測試框架,可以幫助你測試 JSP custom tags。該項目與近日發布了 tagunit 1.0,這裡下載
EJOSA
EJOSA,企業級開源架構,利用 Enhydra 和 JOnAS 為開發者提供一個易用的開發架構。實際上使用 EJOSA 就是使用 Enhydra 和 JOnAS ,因為他們都是 EJOSA 的主要組件。EJOSA 作用是把一些組件都預先配置,並提供一個簡單明了的目錄結構,目的是減輕開發的難度,讓開發者把重點放在業務處理上。
JSP File Browser
推薦一個簡單但非常實用的 JSP 程序,開發該程序的作者為它取名 JSp File Browser,用途是基於 web 方式遠程訪問和操作文件。JSP File Browser 功能很多,比如文件上傳下載、執行本地 shell 命令、將文件目錄壓縮下載、查看壓縮文件內容和解壓縮等等。
Pebble
又推薦一個 blog,名字叫 Pebble,該項目充分利用了 apache 的開源項目:Jakarta Commons BeanUtils, FileUpload and Logging, Jakarta Lucene, Jakarta log4j, Jakarta Standard Taglib。即使不需要 blog,拿來學習研究也很有幫助。
jCharon
推薦一個由 jini (本站開源報作者)剛剛發起的開源項目 jCharon,該項目的目標是創造一個具有國際化與商業化的 Portal 及 Portlets。發起該項目的原因大致是現有的開源 portal 太簡單, portlets 也不具有國際化, 所以建立了以冥王星 (pluto)的衛星 Charon 為名的開源項目。該項目的 License 是 apache Foundation License,目前正在招募開發人員。這裡是他們的交流論壇:http://www.jcharon.org/forum/
ITracker
ITracker 基於 J2EE 的 issue/bug 跟蹤系統,支持多用戶、多項目、郵件通知等,更多特征請查看這裡。這裡還有一個在線 demo 可以試用,用戶名和密碼都是 guest。
JSynoptic
介紹一個很錯不的 Java 圖表制作工具 JSynoptic,它把簡單數據源(data source)根據你的需要自動生成各種類型的圖表,比如柱狀圖、餅狀圖。這個工具核心是 JFreeChart,如果你僅僅需要一些統計圖表,而不是做開發,那麼這個工具將非常適合你。
eForum
eForum 基於 Expresso 框架的 Java-servlet 論壇,具有論壇的一般功能,比起 mvnForum 可能論壇管理功能上更強大一些。如果你要使用 eForum,那你得先對 Expresso 有足夠的了解,這可能也是這個論壇的不足吧。如果你不知道 Expresso,你可以看看我們以前的介紹。
OpenReports
OpenReports 0.5.1 Released! OpenReports 提供基於 web 的報表解決方案,能生成 PDF, XLS, Html, 和 CSV 文件。因為使用了 Hibernate,所以能和目前大多數主流的數據庫連接。
Shocks
Shocks 是一個開放源碼的開發框架,目的是減少 Java Servlet 應用的復雜性。Shocks 並不是 MVC 模式的開發框架,而是采用下一代的體系結構,明確分開了內部各個組件的角色。該項目目前還不夠成熟,但值得關注。這裡只是簡單介紹,如果你要快速了解 Shocks,請閱讀 Shocks 的 FAQ,裡面講解了 Shocks 與 Struts,Webwork,Spring 的關系和差異。
jConfig
因為 propertIEs 的局限性,有時候得使用 XML 文件來定義應用的配置參數,jConfig 正是這樣一個讀寫 XML 配置文件的工具。開發者在 Java 程序中只需要使用 get/set 方法就能讀取修改 XML 文件中的配置參數。jConfig 目前只支持兩層結構,最新版本為 2.3。
Magnolia
Magnolia 是一個由 obinary ltd. 開發的 java 開源 CMS(content-management-system),其優點是定制開發快速簡單且維護容易,主要用到 Java, J2EE, XML, JSP, JCR, JSTL, Html。
Pluto
jGossip
推薦一個論壇 jGossip,jGossip 基於 Struts 開發,具有論壇的一般功能,遺憾的是數據庫目前只支持 MySQL。
JFaceDbc
SQuirreL SQL
SQuirreL SQL 是一個數據庫管理的 Java 客戶端軟件,提供了基礎的管理功能,比如查看數據庫結構,查詢數據,執行 SQL 命令等。與 JFaceDbc 比較,兩者功能大致相似,不過我個人更喜歡 JFaceDbc 多一點。
IzPack
IzPack 是一個 Java 安裝程序制作工具,能夠制作一些簡單的安裝程序。制作出來的安裝程序能在 Unix-like, MacOS X, Windows 等系統平台上運行。
XStream
XML 綁定框架太多,平時開發過程用一個自己熟悉的就夠了。不過今天還推薦一個 XStream,XStream 吸引人的地方在於:使用起來非常簡單,不需要預先生成相關的輔助類,不需要映射文件。當然,使用簡單也注定了它只能處理簡單結構的 XML 文件。
Tanghan
Tanghan 是一個 Hibernate 的 Eclipse 插件。Tanghan 為使用 Hibernate 開發提供了極大的便利,它根據數據庫表結構生成相應的 Hibernate 映射文件和 POJO。
XJR
介紹一個 XML 的 Java 綁定框架吧,XJR,它的主要特點是不需要映射文件,用 XJRDTDCompiler 直接通過 DTD 文件生成 Java 文件,也可以用 XJRDTDCreator 對 Java 類處理生成 DTD 文件。當然也有不足,就是還不支持 Schema。
XMLBlaster
XMLBlaster 是 100% 基於 Java 的 MOM (Message orIEnted Middleware),通過 CORBA ,RMI,XmlRpc 相互通信,在 publishers 和 subscribers 之間傳遞 XML 文件格式的信息。在分布式的 c/s 架構體系中可以考慮 XMLBlaster。
ASPectWerkz
ASPectWerkz 是一個動態的輕量級 AOP/AOSD 的 Java 實現框架
MMBase
MMBase 基於 MPL 的開源 CMS, 具有方便信息發布、維護等特點, 包含有新聞發布、論壇、聊天室等模塊, 不過個人認為該項目最大優點還是豐富的文檔, 這是在開源項目中很難得地方。
Hibernator
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頁面