Openfire 是由Jive Software 主導開發的一套功能非常強大的開源im 服務器(前身是wildfire),它基于XMPP 協議,完全用java實現,是一款非常優秀的服務器端軟件。
最近參與了一個開源項目thinksns,負責im部分,于是準備研究一下openfire的源碼,想要測試和編寫自己的代碼,首先要配置好源碼的運行環境,本文正是基于這個目的而寫的,希望能和志同道合的朋友多交流,共同學習。
計劃不定期的將自己的學習筆記和心得貼上來,一方面督促自己,一方面希望與感興趣的同仁多交流,不過由于最近一直很忙,時間有限,所以可能周期會比較長。
感興趣的話可以給我留言,也可以發送郵件與我交流: zhenyucheung@163.com
一. 安裝JDK(我使用的是JDK1.6), 不再詳述
二. 安裝 Eclipse 3.3(不再詳述)
三. 安裝Subversive插件
Subversive是一款不錯的svn插件,具體安裝方法請參看我的另一篇文章《Eclipse中安裝svn插件Subversive 》,鏈接 http://blog.csdn.net/zhenyucheung/archive/2008/03/19/2195518.aspx
四. check out openfire 源碼
1. 在eclipse中點擊Windows->Open Perspective->Other
2. 在彈出窗口中點擊SVN Repository Exploring 然后點OK
3. 在SVN Repositories 點右鍵,選擇 New->Repository Location...
4. 在彈出的New Repository Location頁面,將http://svn.igniterealtime.org/svn/repos輸入URL文本框,點Finish. 你將會看到頁面出現URL地址.
5. 展開URL地址
6. 展開openfire樹形結構
7. 在trunk上點擊右鍵,選擇Check Out
剩下的就是等待check out完成了 :)
五. 創建openfire工程
對使用過eclipse的人來說,這一步不用多說,這里僅列出幾個需要注意的地方.
1. check out完畢后,eclipse會自動創建一個openfire工程,請把它刪除(注意刪除時不要刪除content),否則你將不得不手動配置一些開發環境。
2. 用Create project from existing source新建工程,注意工程名要用openfire。
六. Build openfire
openfire是用ant構建的,所以要先設置使得eclipse中每次編譯都使用內置的ant工具,保證編譯的正確執行。
1. eclipse中點擊Window->Show View->Ant
2. 在Ant 頁面點右鍵,選擇 Add Buildfiles...
3. 展開openfire/build文件夾,選擇build.xml, 點 OK.
4. 在Ant頁面, 展開Openfire XMPP Server,雙擊 openfire ant 任務
七. 創建項目Builder
1. 點擊Run->Open Run Dialog...
2. 選擇Java Application,點擊 New 按鈕
3. 在Run窗口的Main選項卡中, 修改Name文本框中的值,改成Openfire,其他名字亦可
4. 點Browse按鈕,選擇openfire, 點ok
5. 點Search按鈕,選擇Main class為org.jivesoftware.openfire.starter.ServerStarter,點OK。(這是openfire的啟動類)
6. 點擊進入Arguments選項卡
7. 在VM arguments文本框中輸入
-DopenfireHome="${workspace_loc:openfire}/target/openfire",這個是用于eclipse執
行java命令時傳遞的參數,這樣openfire程序可以通過System.getProperty(“openfireHome”)得到
openfire的本地位置。
8. 點擊進入Classpath選項卡
9. 點選User Entries,這樣Advanced...就處于可用狀態
10. 點擊Advanced...按鈕
11. 在Advanced Options頁面,選擇Add Folders, 點ok.
12. 選擇openfire"src"i18n, 點ok將這個文件夾加入到class path,同樣的方式把openfire"src"resources"jar也加到class path中。
13. 在Common選項卡中,點選Run復選框。
設置完畢,這樣以后在run這個工程的時候就會按照正確的配置進行了,debug的設置和run的設置類似,不再多說。
參考文章: http://www.igniterealtime.org/community/docs/DOC-1020