最近要做openfire的項目,以前沒接觸過,從頭學習吧.
-----------------------------------------------
轉貼:
Openfire源代碼調試、編譯開發環境
說明: 開發環境(IDE):Eclipse 3.3.2+JDK1.6+Ant 1.7+Openfire_src_3_5_1.zip
1. 如果代碼中使用了import testng.xxx語句,就需要導入testng-5.8-jdk15.jar類庫;
2. 對於警告信息,是沒有關係的。因爲這些警告信息是使用1.5以上版本JDK時候纔出現的,使用JDK1.4是不會出現這些警告信息的。因爲這些代碼中的有 些是使用JDK 1.4編寫的,而JDK1.4不支持泛型,而JDK 1.5和JDK1.6是支持泛型的。這些警告信息主要是提示將這些非泛型的代碼修改爲更加高級的方法——泛型,所以這些警告信息是不影響代碼結果的。
如果需要修改爲泛型也是可以,使用泛型來處理相關的集合類。
3. 在使用ant進行編譯的時候,在ant視圖中可能會出現警告如下信息:
taskdef class com.install4j.install4jtask cannot found
這個主要是要安裝用來打包Java應用程序的install4j.exe程序,要安裝到其默認的安裝路徑下。也就是C:"Program Files"目錄下即可。
4. 在源碼裏面有一個文件夾裏有個打包的圖標,雙擊那個圖標,install4j 就會讀取你在build.xml文件裏的信息、在裏面完成做界面等打包工作。
編譯調試的環境(IDE): Eclipse 3.3.2+JDK1.6+Ant(內置)+ openfire_src_2008-06-04.zip
在Windows操作系統下編譯、調試openfire之前,需要確保HTTP SSL服務已經啓動。否則,會出現各種錯誤信息。
1. 獲取Openfire源代碼
從官方網站上直接下載官方發佈版本的源代碼openfire_src_2008-06-04.zip源代碼壓縮包;
2. 創建openfire工程
將openfire_src_2008-06-04.zip解壓後,目錄下除了READEME.html、LICENSE.html和changelog.html三個網頁文件之外,有下面四個子目錄。
build 目錄: build目錄下收錄的是生成安裝文件(例如:rpm)所要的一些文件,例如JRE等。
resources 目錄: resources目錄下收錄的是一些爲實現國際化(i18n)和本地化的一些編碼文件(例如:英文,中文,法文,德文等)。
documentation 目錄: documentation目錄下收錄的是一些關於Openfire安裝和配置的信息,但最終要的是這裏有Openfire開發的Javadoc。
src 目錄: 這個src文件夾就是我們想要的Openfire源代碼了,這下面又有許多文件夾,我們只要Java文件夾就好,這裏面實現的Openfire的核心功能,通過它就可以調試Openfire。
如果您是做二次開發,爲了定製自己的服務器端,就可以採用這樣方法:
(1)新建工程:File->New->Project->Java Project,單擊Next,在Project name文本框中輸入工程名:openfire,單擊Finish
(2)解壓後得到的openfire_src_3_5_1"src目錄下所有內容複製到新建的工程目錄workspace"openfire下
(3)在Package Explorer視圖中,右擊openfire工程,選擇Properties,在彈出的對話框中選擇Libraries->Add JARs..,把openfire_src_3_5_1/build/lib目錄下的*.jar類庫全部添加進來;選擇Source標籤頁,Add Folder..,選中src/java目錄前的複選框,點擊OK,點擊OK按鈕。
(在Eclipse中將此Java文件夾當成源代碼文件夾新建工程,建立新工程後觀察 Openfire所import的包,發現Openfire用了許多開源工具,而這些庫都在上文提到的Build目錄的lib目錄下,將Openfire 用到的庫都添加到這個新建工程的Referenced Libraries中。或者如果這樣一個一個添加比較麻煩的話還有一個方法就是從你安裝好的Openfire服務器目錄下的lib目錄中(例 如:”D:"Program Files"Openfire"lib”或“/usr/local/openfire/lib”)找到openfire.jar,打開後將裏面的org /jivesoftware刪除,重新打包成jar並添加到這個新建工程的Referenced Libraries中,這樣就可以省去了很多類似的工作。)
(4)但是這樣新建的openfire項目沒有打包部署,需要開發者自己完成相應的工作。
注意:新建工程之後,可能會出現一些警告信息,下面對此予以說明:
對於警告信息,是沒有關係的。因爲這些警告信息是使用1.5以上版本JDK時候纔出現的, 使用JDK1.4是不會出現這些警告信息的。因爲這些代碼中的有些是使用JDK 1.4編寫的,而JDK1.4不支持泛型,而JDK 1.5和JDK1.6是支持泛型的。這些警告信息主要是提示將這些非泛型的代碼修改爲更加高級的方法——泛型,所以這些警告信息是不影響代碼結果的。如果 需要修改爲泛型也是可以,使用泛型來處理相關的集合類。
3. 編譯工程
openfire是用ant構建的,所以要先設置使得eclipse中每次編譯都使用內置的ant工具,保證編譯的正確執行。同時,要在Eclipse中設置爲使用JDK作爲JVM,如果使用JRE作爲JVM,編譯就會失敗。
因爲openfire在Windows下是使用install4j打包成.exe格式的安裝文件的,所以需要安裝install4j。否則,在使用ant 進行編譯的時候,在ant視圖中可能會出現警告如下信息:taskdef class com.install4j.install4jtask cannot found。這主要是要安裝用來打包Java應用程序的install4j.exe程序,而且將要安裝到其默認的安裝路徑C:"Program Files"install4j下。
注意: 有時候在Windows下安裝的時候,可能會出現如下圖所示的錯誤,而導致無法安裝
但是,只要將安裝程序install4j_windows_4_1_2_with_jre.exe拷貝到上面提示的目錄下進行安裝就可以安裝成功,如複製到C:"Documents and Settings"liaolonglong目錄下。
(1)在eclipse中點擊Window->Show View->Ant,打開Ant窗口;
(2)在Ant 視圖中,單擊右鍵,在彈出的快捷菜單中選擇Add Buildfiles..;
(3)在彈出的對話框中,展開openfire/build文件夾,選擇build目錄下的build.xml,點擊OK;
(4)在Ant視圖中, 展開Openfire XMPP Server,雙擊 openfire(default)編譯工程
(5)如果在Console視圖中顯示“BUILD SUCCESSFUL”就表示編譯成功。
7. 創建項目Builder
(1)在eclipse的菜單欄中,選擇Run->Open Run Dialog...,在彈出的對話框左側的樹形結構中選擇Java Application,單擊右鍵,選擇New創建啓動配置。
(2) 在Run窗口的Main選項卡中, 修改Name文本框中的值,改成包含要啓動的類的工程名openfire
(3)在Run窗口的Main選項卡中,點Browse按鈕,選擇openfire
(4)在Run窗口的Main選項卡中,點Search按鈕,選擇Main class爲
org.jivesoftware.openfire.starter.ServerStarter,單擊Apply按鈕。(這是openfire的啓動類)
(5)點擊進入Arguments選項卡,在VM arguments文本框中輸入
-DopenfireHome="${workspace_loc:openfire}/target/openfire"
單擊Apply按鈕。這個是用於eclipse執行java命令時傳遞的參數,這樣openfire程序可以通過System.getProperty(“openfireHome”)得到openfire的本地位置。
(6)點擊進入Classpath選項卡,選中User Entries,這樣Advanced...就處於可用狀態;點擊Advanced...按鈕,在Advanced Options頁面,選擇Add Folders, 單擊OK。(默認情況下,已經將工程openfire添加到了這裏,而不需要進行該項操作,如果有多個工程的時候才需要執行該項操作。)
選擇openfire"src"i18n, 點OK按鈕將這個文件夾加入到Classpath選項卡中;同樣的方式把openfire"src"resources目錄下的jar文件夾也加到Classpath選項卡中。
(11)在Common選項卡中,勾選Run複選框,單擊Apply按鈕。
設置完畢,這樣以後在run這個工程的時候就會按照正確的配置進行了,debug的設置和run的設置類似,不再多說。