最近因爲需求,需進行openfire的插件開發,因而需將openfire的源碼進行部署,目前最新的openfire穩定版本是3.9.3,官方下載地址是http://www.igniterealtime.org/downloads/index.jsp,下載頁面如圖:
也能夠到github上下載最新的3.10beta版的源碼,下載地址:https://github.com/igniterealtime/Openfiregit
進入下載好的源碼的build/eclipse目錄下,拷貝其下面的全部文件和文件夾到build上級目錄(可能名爲歐openfire),將文件classpath、project分別修改爲.classpath,.project(windows下可能不能直接修改,能夠拷貝其餘現成的eclipse工程下的這兩個文件,而後修改其內容替換便可),以下圖:
github
修改後的效果及目錄結構以下圖:
windows
而後直接導入eclipse
api
導入後會出現紅色的感嘆號,或者報錯,效果如圖:
eclipse
下面來一步一步的解決,右鍵查看項目的一些jar的依賴狀況,以下圖:
jsp
紅色的×說明缺乏jar,在網上下載對應的jar,而後導入到對應的目錄就好了
maven
添加好上圖所需的一些jar包後,從新編譯刷新後,發現會報一些錯誤:
工具
一步步跟進,發現一些類找不到,原來還缺乏一些jar包:
ui
經過上網搜索發現,須要org.eclipse.jetty.spdy.server.http包,在build/lib/merge目錄下發下含有spdy字段的jar包,因而果斷添加到build path 中去
添加後,再編譯刷新,發現剛纔出錯的地方終於消失了,但仍是有錯誤,發現缺乏jetty-servlets 包,以下圖。
spa
再首先到build/lib/merge目錄下查找,也發現了有該jar包,因而又引入該jar包,而後從新編譯刷新,發現plugins的一些目錄下還有錯誤了:
通過搜索,發現缺乏jsr311-api,因而從網上下載該jar包拷貝到build/lib/merge目錄下,再添加到build path裏去,編譯後發現仍是有錯誤:
查找對應的解決方案後發現,是缺乏jersey-bundle包致使的,因此下載該包後再編譯,發現該項目終於不報錯了,邁進一重大的一步。
工程不會報錯後就能夠開始利用ant來編譯項目了,步驟以下:
打開eclipse的ant視圖,並選擇項目的build.xml文件
定位到該視圖
添加該工程下build.xml文件
運行Openfire XMPP Server的build文件
展開Openfire XMPP Server,選擇openfire[default],右鍵,run as ->ant build
展開
運行
編譯完成後的配置
等待一小會後,不出意外的話,控制檯會出現編譯成功的信息:
而且刷新openfire工程後,會多出target和work兩個目錄:
配置運行的主類
選中項目,添加eclipse工具欄:
添加運行項
選擇main class
配置運行的參數
選中Arguments選項卡,在VM arguments中填入
-DopenfireHome=」${workspace_loc:openfire}/target/openfire」
注意不要丟了前面一個小橫線 若是你的項目名不是openfire_src 的話 要換成你的項目名
即 :-DopenfireHome=」${workspace_loc:【項目名】}/target/openfire」
而後選擇classpath選項卡 選中User-Entries –> 選擇右側的Advanced…–>選擇Add Folder
分別添加src/i18n 肯定
選擇右側的Advanced…–>選擇Add Folder
build/lib/dist 肯定
選擇右側的Advanced…–>選擇Add Folder
src/resources/jar 肯定
效果圖以下:
運行成功
配置好上面的參數後運行,eclipse控制檯會出現運行的一些信息:
而後大功告成了!!!
用瀏覽量訪問:http://localhost:9090就能夠了進行一些配置了。
項目中缺乏的一些jar包能夠在網上搜索下載,推薦用maven來下載,提供一個jar包下載的網址:http://mvnrepository.com