(转)即时通讯IM OpenFire源码学习之三:在Eclipse中构建源码
转:http://blog.csdn.net/huwenfeng_2011/article/details/43412617
源码搭建
下载地址:
地址:http://www.igniterealtime.org/downloads/source.jsp
环境准备
第1步: 在官网上在下最新源码,这里是3.8.1。解压后得到如下图所示:
第2 步: 在IDE工具上新建一个Java普通工程命名openfire
第3步: 将解压后的openfire_src目录的下的所有文件源码复制到此项目下,例图所示
这里稍等片刻后,看到如下效果图:
上图中在工程上出现了错误信息报告,不用着急。原因是刚导入的项目还有些jar包没有加进来。继续往下看吧!
第4步: 右键点击项目选择Properties,在"JavaBuild Path"的"Libraries"中添加build/lib下所有的jar包。如下图所示:
注意:这个lib包下还有三个3包,全都加进来吧:
第5步: 加载完这些jar后,不要关闭当前窗口。继续点击Source选项卡
第6步: 点击Add Folder...如图选择:
为了方便编辑,把插件的源代码显示出来,在Properties文件夹中选择Source,Add Folders,在Build Path配置中把 /openfire_src/src/i18n 、/openfire_src/src/resources/jar 、/openfire_src/build/lib/dist 文件夹添加到 Source 中
第7步: 如下图,报错是因为缺少coherence相应的包:coherence.jar、coherence-work.jar jartangosol.jar
这些jar 在http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html。可下载。接下来将这三个jar包复制到:/openfire_src/src/plugins/clustering/lib下。如图:
第8步:Eclipse已经集成了Ant,所以我们只需要在/openfire_src/build/build.xml 文件右击, 选择Run As –> Ant Build 即可完成编译,编程成功后,会在/openfire_src/的跟目录下生成两个新的文件夹:target 和 work
第9步: 配置启动参数
选择Run –>Run Configurations… 左边的Java Application,单击右键,选择 New:
把默认name:New_configuration 修改成:ServerStarter
Main Class配置为:org.jivesoftware.openfire.starter.ServerStarter
选中Arguments选项卡,在VM arguments中填入:
-DopenfireHome=${workspace_loc:openfire}/target/openfire (注意:没有双引号,下图有误)
注意:项目路径${workspace_loc:openfire}
选中Common选项卡,将Debug和Run打钩(方便之后快速启动),然后点击apply
OF提供的开发模式
-DdevelopmentMode="true"
至此OpneFire的源码环境就搭建完了。
(转)即时通讯IM OpenFire源码学习之三:在Eclipse中构建源码的更多相关文章
- Java并发包源码学习系列:线程池ScheduledThreadPoolExecutor源码解析
目录 ScheduledThreadPoolExecutor概述 类图结构 ScheduledExecutorService ScheduledFutureTask FutureTask schedu ...
- (转)Maven学习总结(七)——eclipse中使用Maven创建Web项目
孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(七)——eclipse中使用Maven创建Web项目 一.创建Web项目 1.1 选择建立Maven Project 选择File -&g ...
- [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar中的类解压后放在运行jar中
前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中 使用7z打开压缩包,查看所有依赖的jar都被解压以包名及class的方式存储在了运行jar中,此时jar的 ...
- [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中
本文需要参考前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中 上文是导出的运行的依赖jar被放在了子目录中,本文是将依赖jar放在可运行jar的本身,这样发布的 ...
- [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中
工程创建可参考前文: [学习笔记] 在Eclipse中使用Hibernate,并创建第一个工程,数据库为Oracle XE 在工程上鼠标右键: 找到java 选择 Runable JAR file N ...
- (转)OpenFire源码学习之二十七:Smack源码解析
转:http://blog.csdn.net/huwenfeng_2011/article/details/43484199 Smack Smack是一个用于和XMPP服务器通信的类库,由此可以实现即 ...
- 框架源码系列五:学习源码的方法(学习源码的目的、 学习源码的方法、Eclipse里面查看源码的常用快捷键和方法)
一. 学习源码的目的 1. 为了扩展和调优:掌握框架的工作流程和原理 2. 为了提升自己的编程技能:学习他人的设计思想.编程技巧 二. 学习源码的方法 方法一: 1)掌握研究的对象和研究对象的核心概念 ...
- Java并发包源码学习系列:线程池ThreadPoolExecutor源码解析
目录 ThreadPoolExecutor概述 线程池解决的优点 线程池处理流程 创建线程池 重要常量及字段 线程池的五种状态及转换 ThreadPoolExecutor构造参数及参数意义 Work类 ...
- Java并发包源码学习系列:同步组件CountDownLatch源码解析
目录 CountDownLatch概述 使用案例与基本思路 类图与基本结构 void await() boolean await(long timeout, TimeUnit unit) void c ...
随机推荐
- Python字典操作及课后练习
'''dict,唯一一个映射数据类型数据类型划分:可变数据类型,不可变数据类型不可变数据类型:元组,bool int str(对str的任何改变都是形成了新的str,对原来的str没有改变)可变数据类 ...
- docker-compose快速搭建 Prometheus+Grafana监控系统
一.说明Prometheus负责收集数据,Grafana负责展示数据.其中采用Prometheus 中的 Exporter含:1)Node Exporter,负责收集 host 硬件和操作系统数据.它 ...
- 向上转型---父类引用指向子类对象 A a = New B()的使用
一.向上转型 向上转型是JAVA中的一种调用方式,是多态的一种表现.向上转型并非是将B自动向上转型为A的对象,相反它是从另一种角度去理解向上两字的:它是对A的对象的方法的扩充,即A的对象可访问B从A中 ...
- linux基础知识汇总(三)-vmware下ubuntu上网配置
方式1 : 使用NAT共享IP的方式.使用这种方式什么都不用设置就可以在ubuntu中上网冲浪了. 备注: 1.如果ubuntu还不能上网的话,可以到我们的电脑的“服务”里面,检查“VMware NA ...
- Weblogic console控制台密码更改后导致重启服务失败
weblogic版本10.3.3.0 更改控制台密码后,服务重启失败,报错如下: ----------------------------------------------------------- ...
- MySQL-8.0填坑
Client does not support authentication protocol 或 Authentication plugin 'caching_sha2_password' cann ...
- 记录以下mysql5.7在win使用Navicat无法链接的问题
1.前提 系统:win1o0 局域网服务器:ubuntu18.04 mysql版本:5.7 问题描述: 在ubuntu18.04下的shell 中使用mysql -uroot -p 是可以登陆的, ...
- raid 5
1. 添加硬盘设备 1.首先添加一块硬盘 2.选择磁盘类型 点击下一步 创建新的磁盘 更改磁盘大小 磁盘名称 完成以后硬盘出现在列表中 按上述步骤进行五次,新建五个硬盘如图 然后开启虚拟机 打开终 ...
- adb 常用命令大全
adb 常用命令大全 1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd ...
- 慎用margin系列2---ie6双倍边距问题
IE6下有一个著名的margin双倍bug 一.什么是双边距Bug? 先来看图: 我们要让绿色盒模型在蓝色盒模型之内向左浮动,并且距蓝色盒模型左侧100像素.这个例子很常见,比如在网页布局中,侧边栏靠 ...