• openfire3.7.1源码编译过程


    1.       使用openfire源代码进行项目工程建立

    首先新建java Project 选中“已有源码”

     

    之后点击nexteclipse会自动进行解析加载类包和jar包等一系列classpath配置,之后直接点finish,在workspace就出现一个新建立的工程了,我这边的工程名为openfire_src

    2.       缺少jar包的导入

    当然,完成上面一些步骤,你会发现,其实系统还是会报错的。

    因为openfire源码中没有包含coherence.jartangosol.jar,这两个包在coherence3.3b版本中可以适用。(3.7版本的太先进,导入会发现有一些API找不到)

    2jar包导入openfire_src/build/lib下,然后在jar上右键buildpath加入classpath即可。

    另外,可能sip插件里面的代码也会报错,我这里的解决方法是直接找java文件,然后使用eclipse自带提示操作方法。一般都是没实现接口方法或者没捕获异常等

    3.       配置编译环境

    Openfire使用ant进行编译,另外还使用了install4j这个转exe工具,所以你还需要安装install4jC:\Program Files\install4j下。注意,这是一个默认的文件路径。

    如果不使用默认的文件路径,那么你需要到openfire_src/build下的

    build.properties.template , 修改并设定install4j的所在路径。

    4.       eclipse中开始编译(也可使用第5步骤,在独立ant中编译)

    点击window – Show view – Ant , 在弹出的Ant窗口中,点击添加按钮,找到openfire_src/build/build.xml文件,打开,之后选中openfire[default](蓝色项),运行编译即可。

    运行完毕后,在文件夹中就多了一个target文件夹,里面有可发布的openfire目录了。

    打开target/openfire/bin/ openfire.bat 即可启动openfire

    5.     命令窗口cmd中使用openfire源码自带的build.xml,可使用的ant命令编译(可选)

    http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/source-build.html#tasks

     

    path加入ant/bin的情况下,进入openfirebuild.xml所在文件夹,可以输入以下命令:

           ant  -- 等同于ant openfire 编译openfire自身

           ant openfire

           ant plugins -- 编译插件 会在target/openfire/plugins下生成jar插件包

           ant clean – 清楚target文件夹

     

    6.       基本完成资源的添加和代码的编译了,之后我们要进行

    运行时的配置,用于代码研究调试

    单击run – Run Configurations

    l         Main选项卡中的Project项中选择openfire_src 也就是你建立的工程名,在Main class项中选择ServerStarter类。

    l         Arguments选项卡中的VM arguments中加入

    DopenfireHome="${workspace_loc:openfire_src}/target/openfire

    openfire的主目录

    l         ClassPath选项卡中,单击UserEnties – 点击右边的Advanced按钮选中Add Folders – 点击OK – 选择openfire_src/src/i18n 文件夹。

    以同样方法再导入openfire/src/resources/jaropenfire/src/test/resources

    l         Common选项中勾选run debug (可选)

    l         直接run运行

     

    7.       完成以上步骤,基本上就可以进行对openfire源码的debug调试、学习了

  • 相关阅读:
    Codeforces Round #588 (Div. 2) D Marcin and Training Camp
    DFS / BFS题目栏 (来自一个队友退役后,不得不,重拾图论的选手的叹息)
    Codeforces Round #588 (Div. 2) Anadi and Domino (dfs)
    Codeforces Round #585 (Div. 2) A,B,C,D
    【题解】牛客挑战赛32 (两道水题+一题矩阵快速幂)
    c/c++输入时间问题
    莫队 + 带修莫队
    hdu 5775 Bubble Sort (树状数组)
    UVALive 4329 Ping pong (树状数组)
    hdu 5754 Life Winner Bo(博弈)
  • 原文地址:https://www.cnblogs.com/xuewater/p/2620788.html
Copyright © 2020-2023  润新知