openfire開發(五)openfire插件打包另類打法

由於我們的openfire插件引入的包越來越多,導致插件也越來越大,而且openfire3.10.x之後取消了pack200的打包方式(壓縮),導致打包出來的插件越來越大,大概10M左右,上傳速度大概200KB/s,有時候上傳插件到50%多,因爲網絡不好,導致又得重傳,蛋疼~~~


因此就想琢磨着能不能不將插件開發時依賴的第三方包,不打包到插件之中。以下分析都是基於openfire3.10.x版本操作


1、首先解壓插件分析結構,我們可以發現整個插件依賴的包是整個放到lib中的(和我們的開發目錄中的lib很像啊~~~),初步推斷打包的時候是直接將lib目錄裏面的東西全部拷貝過去的。


2、我們先移除掉插件的lib目錄中jar文件的build path,現在我們的插件代碼也因爲找不到類顯示紅色叉叉了。


3、我們在build文件夾同級目錄中新建chatlib目錄,並將插件lib中的jar文件全部拷貝進去,並刪除lib目錄。並將jar文件build path(我是放到chatlib統一管理),如下圖所示。

wKiom1YzQfeySuNEAABCgP0SCO4425.jpg

4、這時候,我們的代碼不顯示紅色叉叉了,但是使用build.xml進行build的時候會報錯。找不到類,這時候我們需要修改build.xml。首先我新建個屬性,指向我們插件依賴jar的lib目錄,如下圖所示

wKioL1YzQuzDAmhuAAFzqeQKjSI444.jpg5、還要修改一個地方,如下圖所示(此種方法只是針對build我們自己的插件)

wKioL1YzQ5TyZZ8BAAHPtxlScGI916.jpg6、再次build,我們的插件可以build成功了。要使openfire能夠運行這個插件,還需要將我們的插件依賴的jar拷貝到openfire的lib目錄中,或者你可以自己在openfire根目錄中新建個目錄,但是這種方式需要修改openfire/bin目錄中的openfire文件的腳本。


順便解釋下openfire.jar那個文件爲什麼沒有引入lib,是因爲build.xml裏面有個參數,具體名字記不清了,可以將依賴的類直接拷貝到插件目錄中~~


後記:此處我只提供一種方式,具體操作還是要根據實際需求去打包,如果有不懂可以聯繫我~~




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章