從JBoss的服務(wù)器中獲得源碼的細節(jié)
第一步,連接到JBoss服務(wù)器
我采用的是MyEclipse6,SVN的Eclipse插件,直接解壓到MyEclipse的eclipse目錄下即可,打開MyEclipse后,即可在window->show view->other中打開svn repository的窗口,在其中new一個svn repository,這個是公共的匿名服務(wù)器,每五分鐘自動與JBoss服務(wù)器同步一次
PS:這個網(wǎng)址可以用瀏覽器直接訪問,就好像上ftp一樣,非常方便,也是SVN優(yōu)于CVS的一方面
第二步,下載相應(yīng)的JBoss源碼
仔細看看JBoss服務(wù)器的目錄就會發(fā)現(xiàn)JBoss源碼數(shù)量之巨讓人乍舌,不過在這里我只下載JBoss,因為當前市面上能買到的中文資料書,最新也就4.x,大部分也是發(fā)布到網(wǎng)上的正式版,可以選擇一個版本下載,然后運行build/build.bat 文件,自動完成編譯構(gòu)建工作,如果要最新的JBoss源碼,這個目錄下就是JBoss所有模塊的源代碼了,你可以選擇直接 check out 整個Branch_4_0目錄,那樣就得到全套JBoss4.0的JBoss源碼了,然后運行 build/build.bat 即可,ant會自動完成編譯、打包生成二進制代碼的工作。(但在我的機子上會構(gòu)建失敗,不知是JBoss源碼還是配置的問題)不過我們這里的目的不是獲得JBoss 的可執(zhí)行jar(官方網(wǎng)站可以直接下載release版本),也沒有高級到修改JBossJBoss源碼的地步,所以我只下載兩個核心模塊:system和jmx 。其中,system是引導(dǎo)JBoss啟動并且載入核心模塊的模塊,而jmx則是JBoss核心的運行模塊(我們都知道JBoss是完全基于JMX實現(xiàn)的)。簡單的研究一下而已。
細心觀察各個模塊可以發(fā)現(xiàn),每個模塊下都有一個.project文件,顯然每個模塊都是一個eclipse的project,所以單純把全部模塊check out到一個項目Branch_4_0是不行的,為什么呢:首先是下回來直接構(gòu)建會沒反應(yīng),因為eclipse默認把工程目錄下的src作為JBoss源碼目錄,其他目錄中的JBoss源碼是不會被編譯的,雖然可以手動添加更多的src目錄,但那樣會累死。更何況,下載和構(gòu)建那么多源文件也會讓你的硬盤崩潰的,我是被那種磁頭反復(fù)讀寫的噪聲折磨了不止一個小時,連最后刪除時系統(tǒng)也卡死在那里,很郁悶
言歸正傳,我先直接在jmx和system模塊上右鍵“check out”,把它們簽出為兩個獨立的Java project。但是你會不爽地發(fā)現(xiàn)兩個項目都出現(xiàn)了紅叉,提示幾類錯誤:一是找不到一堆庫文件,二是ant的構(gòu)建文件缺這缺那的,煩死,三是 system模塊還需要test模塊的支持。
下面,以system模塊的解決方法為例,其他模塊同理可解
首先,我們的目的是讓這個項目能夠構(gòu)建通過,從而將來看源代碼時可以充分利用IDE的輔助功能,那么上述第二類錯誤是無關(guān)緊要的,因為暫時不需要用ant構(gòu)建。
然后,第三個錯誤,我們可以在system項目的build path中發(fā)現(xiàn),需要關(guān)聯(lián)jmx模塊和test模塊,所以只需再把test模塊check out回來即可。不過test模塊同樣會提示缺少一些庫文件。
最后,我們在build path中查看一下那些庫文件到底什么來頭??梢园l(fā)現(xiàn)他們都形如 “/thirdparty/apache/log4j”之類的,而SVN上面正好有一個“thirdparty”模塊,check out回來看看——里面什么都沒有,就一個README,里面寫道“/thirdparty 目錄的內(nèi)容是由ant在構(gòu)建過程中生成的,所以這個目錄現(xiàn)在為空”。怎么辦呢,難道要自己去找那些jar庫文件(也不是不行,因為用到的jar都是比較有名的開源工具包),研究了一下那些ant構(gòu)建文件,太多太繁瑣,自己又對ant不熟,無果而終。有經(jīng)驗的朋友可以下載build模塊,看看里面那一堆 build XXX.xml 文件
不甘心地在SVN中繼續(xù)搜索,在 Branch_4_0/thirdparty/ 中就有我們所需的全部jar,可以按需下載。只是下回來的jar所在的目錄結(jié)構(gòu)跟模塊的build path 不一致,譬如:實際jar目錄為“apache\log4j\lib\log4j.jar”,而build path中為“apache-log4j\log4j.jar”,所以,最后還是要自己一個個手工重新指定路徑,最起碼也要修改其中的classpath
終于,修復(fù)完錯誤了,可以在 project->build project 嘗試編譯一下,成功后,在源代碼中就可以進行高亮語法顯示、按住ctrl跟蹤源代碼等高級功能了。最起碼,不會再有一堆紅色叉叉影響我們看代碼的心情了
【編輯推薦】