文档章节

XMPP学习笔记-LESSON-004:openfire之编译简介

今幕明
 今幕明
发布于 2014/02/10 16:08
字数 567
阅读 285
收藏 0

    of的使用非常简单,便捷,由于开源,下载源码后也可以随意修改,于是编译也就有了了解的必要。

    of的构建工具是ant,所以前提你需要下载apache ant,并配置好环境。在此之前,建议了解一下ant,比如熟悉设置property,target,task,depends代表什么意思。


    进入build/,打开build.xml,查看有多少个target,每一个target就是一个ant任务(不是task),简单来说就是 ant target-name,比如clean,dist.src,dist.bin,compile等。这里最常用3种,一直就是默认的ant,如果懂ant的话就会知道在build.xml中有个default="openfire",这就是默认的target,即你输入ant回车等同于ant openfire。这个是编译一个默认的版本,在target/openfire中,其中包含了"compile, jspc, -i18n".这个具体意义就不说,build.xml中注释写的比较清晰。第二种就是打包,即生成tar.gz或者zip文件的压缩包,这里类似网上下载的openfire,解压即可用。第三种,就是installer,即生成系统可执行的安装包,比如linux的deb,mac版本的安装包等。这里需要用到install4j,这个东西是一个安装工具,这个我没测试过,这里就不说了。build.xml中有相关属性设置。


     还有一点需要了解的是插件的编译和打包方式。这里有2个target,一个plugins,一个plugin,就是s的差别。ant的description说的很清楚,plugins没啥说,编译所有插件,plugin呢?查看plugin,需要输入plugin参数,如"-Dname=value"(-Dplugin=xxxx), 这一种方式,等同于<project>下的<property>。xxx就是你要编译的插件,这个xx在src/plugins/下,给个demo: ant plugin -Dplugin=fastpath 。当然你也可以直接修改build.xml作为自定义target。

     

   关于插件的安装和管理,可以看web平台的插件管理,可以很方便的查看插件使用情况。


    最后,提示,默认编译可能存在缺少部分bao,我将更新的一个of镜像放到osc的元马裤中,有兴趣的朋友,可以看一下:
    http://git.oschina.net/jinmuming/openfire.git





© 著作权归作者所有

今幕明
粉丝 46
博文 224
码字总数 39350
作品 0
朝阳
程序员
私信 提问
XMPP学习笔记-LESSON-001: run on eclipse

之前也一直研究openfire,不过更多的是根据实际情况做些具体修改,以及具体操作,比如用户整合,服务器设置等,闲散的弄了几月,最近考虑系统的学习xmpp。 在学习本章之前,先看了一周的xmp...

今幕明
2014/01/23
0
0
XMPP学习笔记-LESSON-007:XMPPServer.java之Plugin开发

网上关于openfire开发的文字非常多,在这里推荐一篇文章: http://redhacker.iteye.com/blog/1919329 openfire插件开发之完美开发 这是单独开发openfire插件的的一个实例。 不过我个人还是建议...

今幕明
2014/02/21
0
0
XMPP学习笔记-LESSON-002:ServerStarter.java

这个类非常简单,定义了2个变量: DEFAULTLIBDIR 默认的系统包路径,值../lib,可以看出这里的root是$openfireHome/bin,那么../lib,就是$openfireHome/lib目录,这里存放着用到的jar,或者j...

今幕明
2014/01/23
0
0
XMPP学习笔记-LESSON-003:XMPPServer.java之initialize​

上文讲到,ServerStarter通过java反射机制,实例化org.jivesoftware.openfire.XMPPServer,在xmppserver构造函数中,调用start方法,,开始了服务之旅. 首先,我们来看看start方法中,XMPPServer...

今幕明
2014/01/26
0
0
XMPP协议学习笔记三(Openfire服务器端搭建开发环境)

在了解了XMPP的基本结构和一些概念之后,我们暂时告别枯燥的理论学习,来动手搭建一下Openfire+Spark的开发环境,实际感受一下搭建整套IM通讯系统的过程。 开发环境:windows XP sp3,Eclip...

JayPark不作死
2014/06/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

程序员随想-关于分享

最早的时候,文字是贵族这些上层人士才会学习的,底层人士没有资格和渠道去学习,同样用文字、图像等其他载体承载的知识大部分也只有贵族阶层才能享受的。后来有了造纸术、印刷术,成本降低,...

Lubby
29分钟前
1
0
聊聊hibernate的session-level repeatable reads

序 本文主要研究一下hibernate的session-level repeatable reads 实例 doInTransaction(session -> { Product product = new Product(); product.setId(1L); product.setQuanti......

go4it
40分钟前
0
0
ubuntu或ubuntu kylin优麒麟中安装QQ、wechat微信、百度网盘

从中国国内的地址下载deepin wine,码云上的。这样网速比较快。然后,按照说明向下安装。 https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu...

gugudu
52分钟前
2
0
基于redis分布式锁实现“秒杀”

最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源...

别打我会飞
今天
14
0
Zookeeper的实践指南

本章重点 1.数据存储2.基于Java API初探Zookeeper的使用3.深入分析Watcher机制的实现原理4.Curator客户端的使用,简单高效 数据存储 事务日志快照日志运行时日志 bin/zookeepe...

须臾之余
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部