1. 程式人生 > >值得關注和學習的java開源專案

值得關注和學習的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規範。XPDLXML Process Definition LanguageWFMC 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 。http://blog.csdn.net/shanzhizi

值得關注的另外一個 Java IDE 是 Netbeans ,除了已經提供中文版的 NetBeans IDE 下載以外,

其站點已經開始中文版的建立(並非完全中文,如果你願意協助,可以聯絡[email protected] )。

另外,為了中文 NetBeans 使用者交流方便,還增加了一箇中文郵件列表[email protected] ,

並把NetBeans 時事通訊月刊《萌芽》譯成簡體中文併發送至 [email protected] 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 是基於 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 為你的網站提供網站查詢,並且可以直接在你的網頁裡面顯示搜查的結果。

jBpm

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)。第一個是 Rollerjroller 這個站點用的就是它。另外一個則是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 開源論壇專案,如果你想貢獻一點自己的力量,請參閱這裡

JUnitHttpUnit 都是大家熟知的單元測試工具或框架。jWebUnit 是 web 應用的驗收測試(acceptance test)框架,在 HttpUnit 和 JUnit 之上發展起來。還有 Jameleon 也是一個自動驗收測試(acceptance tests)工具。當然還有ASF 的 Cactus,用於測試服務端程式碼。在不同測試環境和測試條件下選擇不同測試工具,他們都是不可缺少的,或許以後我們會專門搞一個單元測試專題。

在測試 J2EE 應用的時候,往往一個測試工具是不夠的。這裡推薦TagUnit,TagUnit 是一個開源的測試框架,可以幫助你測試 JSP custom tags。該專案與近日釋出了 tagunit 1.0,這裡下載

EJOSA

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。

XJR

介紹一個 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。

MMBase基於 MPL 的開源 CMS, 具有方便資訊釋出、維護等特點, 包含有新聞釋出、論壇、聊天室等模組, 不過個人認為該專案最大優點還是豐富的文件, 這是在開源專案中很難得地方。

Hibernator,一個 Eclipse 外掛,Hibernate 輔助開發工具。Hibernator 根據 POJO 實時生成Hibernate 對映檔案,在 POJO 中不需要標註額外的標記,可以大大降開發者的負擔,但是不足的是,Hibernator 生成的對映檔案並不完整,需要開發者手工做一些小小的補充。

JHotDraw

java開發的畫圖程式,開放原碼

相對於EJB來說,Spring是一個輕量級的J2EE應用開發框架。這裡提到的輕量級指的是Spring框架本身,而不是說Spring只能適用於輕量級的應用開發。Spring的輕盈體現在其框架本身的基礎結構以及對其他應用工具的支援和裝配能力,與EJB這種龐然大物相比,Spring使我們把各個技術層次之間的風險降低。一個比較恰當的比喻就是我們要釘幾個釘子,為了完成這個目的,錘子生產商生產了大大小小一系列的錘子,每個錘子都有一套複雜的使用方法,用來釘某種特別的釘子,結果令我們頭疼不堪。解決錘子過多的問題,通過spring,我們可以使用幾種錘子,但用起來象是隻有一個錘子(

Jive

基於jsp/servlet的一套論壇系統

Tapestry

“面向物件web應用框架”,它使用元件物件模型(而非指令碼)來建立具有高度動態性和交換性的web頁面