将4.2.4版本的openfire源码导入到IDEA中
最近在搞安卓项目的旧聊天模块,把asmack库升级到smack4.2.4版本库。打算利用smack在4.1.0版本之后实现的XEP-0198协议来解决丢消息的问题。
在导入openfire源码到IDEA中的时候也遇到了一些问题,现在写个文章记录一下。希望可以帮到有需要的朋友
本人着重参考参考文章,写这篇文章只是为了把过程记录下来,并且把参考文章中没有遇到的几个问题解决办法也记录下来。
下载源码
这是openfire 4.2.4版本的源码 下载地址。下载后解压到自己喜欢的路径。我解压到该目录下
解压路径使用IDEA导入源码
import 选择源码路径然后一路next就好了,不需要去管其他事情
编译源码
使用AntBuild工具编译源码编译时候会提示没有jdk,按下图配置。
编译过程会提示没有jdk,按图配置 过滤结构,选择openfire,重新编译 正常编译配置服务器configuration
配置Application 设置参数其中VM options是项目编译以后才生成的。
解决报错
编译以后,运行项目会报几个错。如下
rayo的错 删除该jar包删除该jar包,需要在项目依赖中修改下配置,后面还有需要添加的jar包,待会一起配置
错误 错误 错误上图的错误,如图修改S2STestService.java类代码即可。
下面是依赖ant.jar包,我的jar包是直接从IDEA的安装目录下拷贝出来的,路径在D:\Program Files\JetBrains\IntelliJ IDEA 2017.2.6\lib\ant\lib。这个视个人安装路径而定
加入ant.jar包 移除tinder.jar 按照图片操作,添加ant.jar 为openfire module添加ant依赖启动openfire服务器
解决完上述问题以后,如果openfire服务器已经启动占用端口了,记得在IDEA中关闭已经启动的程序。重新启动,在服务器输入127.0.01.1:9090
此时,还有几个错误需要解决。
异常上面这个报错只需要删除如下图片的jar包,在Project配置里面修改一下配置就可以了。
删除的jar包下面还有一个报错是
异常需要复制源码中的路径添加到classPath里面去
如上图,把i18n中的所有properties文件和admin-sidebar.xml文件复制到上图路径中去。
关闭已经启动的服务器,重新启动在控制台还有报错
这个时候只需要下载一个1.2.12版本以上的log4j的jar包,替换rayo里面lo4j.jar包就可以了。log4j下载地址
总结
到了现在,openfire源码应该算是在IDEA导入成功,可以打包部署到本地了。如果有其它问题大家可以根据控制台输出解决。