从JBoss的服务器中获得源码的细节

第一步,连接到JBoss服务器

我采用的是MyEclipse6,SVN的Eclipse插件,直接解压到MyEclipse的eclipse目录下即可,打开MyEclipse后,即可在window->show view->other中打开svn repository的窗口,在其中new一个svn repository,这个是公共的匿名服务器,每五分钟自动与JBoss服务器同步一次
PS:这个网址可以用浏览器直接访问,就好像上ftp一样,非常方便,也是SVN优于CVS的一方面

第二步,下载相应的JBoss源码

仔细看看JBoss服务器的目录就会发现JBoss源码数量之巨让人乍舌,不过在这里我只下载JBoss,因为当前市面上能买到的中文资料书,最新也就4.x,大部分也是发布到网上的正式版,可以选择一个版本下载,然后运行build/build.bat 文件,自动完成编译构建工作,如果要最新的JBoss源码,这个目录下就是JBoss所有模块的源代码了,你可以选择直接 check out 整个Branch_4_0目录,那样就得到全套JBoss4.0的JBoss源码了,然后运行 build/build.bat 即可,ant会自动完成编译、打包生成二进制代码的工作。(但在我的机子上会构建失败,不知是JBoss源码还是配置的问题)不过我们这里的目的不是获得JBoss 的可执行jar(官方网站可以直接下载release版本),也没有高级到修改JBossJBoss源码的地步,所以我只下载两个核心模块:system和jmx 。其中,system是引导JBoss启动并且载入核心模块的模块,而jmx则是JBoss核心的运行模块(我们都知道JBoss是完全基于JMX实现的)。简单的研究一下而已。

细心观察各个模块可以发现,每个模块下都有一个.project文件,显然每个模块都是一个eclipse的project,所以单纯把全部模块check out到一个项目Branch_4_0是不行的,为什么呢:首先是下回来直接构建会没反应,因为eclipse默认把工程目录下的src作为JBoss源码目录,其他目录中的JBoss源码是不会被编译的,虽然可以手动添加更多的src目录,但那样会累死。更何况,下载和构建那么多源文件也会让你的硬盘崩溃的,我是被那种磁头反复读写的噪声折磨了不止一个小时,连最后删除时系统也卡死在那里,很郁闷

言归正传,我先直接在jmx和system模块上右键“check out”,把它们签出为两个独立的Java project。但是你会不爽地发现两个项目都出现了红叉,提示几类错误:一是找不到一堆库文件,二是ant的构建文件缺这缺那的,烦死,三是 system模块还需要test模块的支持。

下面,以system模块的解决方法为例,其他模块同理可解

首先,我们的目的是让这个项目能够构建通过,从而将来看源代码时可以充分利用IDE的辅助功能,那么上述第二类错误是无关紧要的,因为暂时不需要用ant构建。

然后,第三个错误,我们可以在system项目的build path中发现,需要关联jmx模块和test模块,所以只需再把test模块check out回来即可。不过test模块同样会提示缺少一些库文件。

最后,我们在build path中查看一下那些库文件到底什么来头。可以发现他们都形如 “/thirdparty/apache/log4j”之类的,而SVN上面正好有一个“thirdparty”模块,check out回来看看——里面什么都没有,就一个README,里面写道“/thirdparty 目录的内容是由ant在构建过程中生成的,所以这个目录现在为空”。怎么办呢,难道要自己去找那些jar库文件(也不是不行,因为用到的jar都是比较有名的开源工具包),研究了一下那些ant构建文件,太多太繁琐,自己又对ant不熟,无果而终。有经验的朋友可以下载build模块,看看里面那一堆 build XXX.xml 文件

不甘心地在SVN中继续搜索,在 Branch_4_0/thirdparty/ 中就有我们所需的全部jar,可以按需下载。只是下回来的jar所在的目录结构跟模块的build path 不一致,譬如:实际jar目录为“apache\log4j\lib\log4j.jar”,而build path中为“apache-log4j\log4j.jar”,所以,最后还是要自己一个个手工重新指定路径,最起码也要修改其中的classpath

终于,修复完错误了,可以在 project->build project 尝试编译一下,成功后,在源代码中就可以进行高亮语法显示、按住ctrl跟踪源代码等高级功能了。最起码,不会再有一堆红色叉叉影响我们看代码的心情了

【编辑推荐】

  1. JBoss IDE开发EJB3.0
  2. 在Linux环境下安装JDK+JBoss
  3. 在JBOSS下发布Web程序
  4. 如何解决JBoss和log4j冲突
  5. JBoss只能用localhost访问修改办法
免责声明:文章内容不代表本站立场,仅供读者参考。产品相关技术问题请发送工单。 本文链接:https://www.idc.net/help/411699/

为您推荐

开源数据收集引擎 Logstash 讲解和示例讲解

一、概述 Logstash 是一个开源的数据收集和日志处理工具,它是 Elastic Stack(ELK Stack)的一部分,用于从各种数据源中采集、转换和传输数据,以帮助分析和可视化大规模数据。Logstash 通常与 Elasticsearch 和 Ki...

八个开源免费单点登录(SSO)系统

单点登录(SSO)是一个登录服务层,通过一次登录访问多个应用。使用SSO服务可以提高多系统使用的用户体验和安全性,用户不必记忆多个密码、不必多次登录浪费时间。 下面推荐一些市场上最好的开源SSO系统,可作为商业SSO替代。 1.Authelia https://github.com/authelia/authelia ...

浅谈HBase数据结构和系统架构

Part 01 LSM树模型 常见的的关系型数据库,如MySQL、SQL Server、Oracle等,使用B+ Tree作为数据存储与索引的基本结构,非叶子节点只存放索引数据,叶子节点存放所有数据和指向相邻节点的指针,具有高效的范围查询和稳定的查找效率,以及具有较小的读放大和空间放大。采用磁盘随机读写方式,且以磁盘数...

微软Radius平台重构现代应用程序部署

微软的 Azure 孵化团队日前推出一个叫 Radius 的新应用平台。Radius 平台可用于在 Kubernetes、公共云和边缘环境中运行各种现代应用程序。 Radius 是一个开源项目,最初支持的应用程序运行时包括Kubernetes、Azure和AWS,以后还会支持诸如谷歌云平台等云环境。 Mark Russ...

Ext JS3.0正式版发布

Ext JS3.0在经历数次RC版之后,extjs.com终于发布3.0的正式版。总体而言,较2.0改进不大,依然还是原理的组件模型,具体更新及改进如下: ◆提供了参照DWR后与后台的通讯包Direct,支持具有明显的REST风格的CRUD服务 ◆一系列的新的组件和例子,包括有图表(Charting, By YUI F...
返回顶部