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统一管理),如下图所示。

4、这时候,我们的代码不显示红色叉叉了,但是使用build.xml进行build的时候会报错。找不到类,这时候我们需要修改build.xml。首先我新建个属性,指向我们插件依赖jar的lib目录,如下图所示

5、还要修改一个地方,如下图所示(此种方法只是针对build我们自己的插件)

6、再次build,我们的插件可以build成功了。要使openfire能够运行这个插件,还需要将我们的插件依赖的jar拷贝到openfire的lib目录中,或者你可以自己在openfire根目录中新建个目录,但是这种方式需要修改openfire/bin目录中的openfire文件的脚本。

顺便解释下openfire.jar那个文件为什么没有引入lib,是因为build.xml里面有个参数,具体名字记不清了,可以将依赖的类直接拷贝到插件目录中~~

后记:此处我只提供一种方式,具体操作还是要根据实际需求去打包,如果有不懂可以联系我~~

时间: 2024-10-13 20:48:31

openfire开发(五)openfire插件打包另类打法的相关文章

Openfire开发配置,Openfire源码配置,OpenFire二次开发配置

1.下载源码:http://www.igniterealtime.org/downloads/source.jsp 2.把源码解压出的openfire_src目录放至eclipse workplace(注意:若是变更了解压出来的文件名称,则接下来全部用到文件名称的地方都要作出对应更改,否则会报错!) 3.把openfire_src目录里的三个没用的html文件删除 4.打开eclipse,新建一个名为openfire_src的Java Project,然后finish 注:此处的默认路径为ope

Openfire开发配置,Openfire源代码配置,OpenFire二次开发配置

原文:http://www.cnblogs.com/lixiaolun/archive/2013/12/07/3462780.html 1.下载源代码:http://www.igniterealtime.org/downloads/source.jsp 2.把源代码解压出的openfire_src文件夹放至eclipse workplace(注意:若是变更了解压出来的文件名,则接下来所有用到文件名的地方都要作出相应更改,否则会报错!) 3.把openfire_src文件夹里的三个无用的html文

openfire开发(二)openfire消息流程

在完成了第一节的环境搭建之后,相信你的openfire已经能在eclipse中运行.调试了.下面主要介绍一下用什么方法去熟悉openfire与客户端的消息处理流程,阅读代码的事情就交由你自己了. 为了帮助我们理解消息流程,可以到官网下载个spark客户端软件,然后启动调试模式,这样,我们就能直观的观察到客户端与服务器通信的消息了,这样你就可以知道某操作的实现是通过什么样的信息交流来实现的.如下图所示: 要看openfire服务器消息流程处理, 可以从StanzaHandler类开始阅读,当服务器

openfire开发环境(3.9.1)

1.解压源码 2.把build/eclipse中的文件cp到源码跟目录,并修改文件名,前面增加"."号,变成eclipse工程. 3.导入eclipse, 把build/lib/, build/lib/dist, build/lib/merge,build/lib/src 下的包放到build path中,直到没有错为止. 4. 运行 build.xml--> openfire 编译,生成target, work目录. 5.调试: 可断点跟踪 6.插件 运行即可打包插件,注意插件

Android 基于XMPP Smack openfire 开发的聊天室

Android基于XMPP Smack openfire 开发的聊天室

从零开始实现ASP.NET Core MVC的插件式开发(五) - 插件的删除和升级

标题:从零开始实现ASP.NET Core MVC的插件式开发(五) - 使用AssemblyLoadContext实现插件的升级和删除作者:Lamond Lu地址:https://www.cnblogs.com/lwqlun/p/11395828.html源代码:https://github.com/lamondlu/Mystique 前景回顾: 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图 从零开始实现ASP.N

初学seaJs模块化开发,利用grunt打包,减少http请求

原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —dist   //压缩后的目标文件夹 —lib   //各个模块 —drag    //拖拽模块 —scale   //缩放模块 —seajs    //seajs库 —seajs_drag    //入口的主文件main.js —main.js /*——————————————————————————

移动web:原生开发打包,嵌入h5页面 webApp:全部都是H5开发的应用 混合APP:使用第三方开发平台从apicloud,appcan,hbuilder等开发,cordova技术打包 原生APP:就是eclipse开发或者studio等工具开发

论坛43213 移动端webApp兼容问题解决 谈谈App混合开发 Hybrid APP混合开发的一些经验和总结 PhoneGap是一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台.它使开发者能够在网页中调用IOS,Android,Palm,Symbian,WP7,WP8,Bada和Blackberry等智能手机的核心功能--包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以调用. Cordova提供了一组设备相关的

简化网站开发:SiteMesh插件

在编写一个网站时,几乎所有的页面都会有相同的部分.比如顶部的导航栏,每个页面都是一样的,底部的版权声明,每个页面也都是一样的. 那么在编写顶部导航栏的时候,第一种方法就是直接复制导航栏的全部代码,这种方法初期开发很简单但是后期维护简直就是噩梦,要是导航栏要增加一个按钮,所有的页面都要修改,非常麻烦. 第二种方法是将顶部导航栏专门写到一个文件中,所有的页面include这个文件.这样每个页面都要写一个include语句.后期修改只要改一个文件就可以了.但是这种方法写出来的导航栏文件它不是一个完整的