关于如何从JBOSS的SVN服务器中获得源码的细节
第一步,连接到JBOSS的SVN服务器
我采用的是MyEclipse6,SVN的Eclipse插件可以在
http://subclipse.tigris.org/ 下载到,直接解压到MyEclipse的eclipse目录下即可
打开MyEclipse后,即可在window->show view->other中打开svn repository的窗口
在其中new一个svn repository,url为
http://anonsvn.jboss.org/repos/jbossas ,这个是公共的匿名服务器,每五分钟自动与JBOSS开发组的服务器同步一次
PS:这个网址可以用浏览器直接访问,就好像上ftp一样,非常方便,也是SVN优于CVS的一方面
第二,下载相应的源码
仔细看看服务器的目录就会发现源码数量之巨让人乍舌,不过在这里我只下载JBOSS 4.0版本,因为当前市面上能买到的中文资料书,最新也就4.x
http://anonsvn.jboss.org/repos/jbossas/tags/ 目录下的都是已经成型的产品,大部分也是发布到网上的正式版,可以选择一个版本下载,然后运行build/build.bat 文件,自动完成编译构建工作
如果要最新的源码,可以进入
http://anonsvn.jboss.org/repos/jbossas/branches/Branch_4_0/ ,这个目录下就是JBOSS 4.0所有模块的源代码了,你可以选择直接 check out 整个Branch_4_0目录,那样就得到全套JBOSS4.0的源码了,然后运行 build/build.bat 即可,ant会自动完成编译、打包生成二进制代码的工作。(但在我的机子上会构建失败,不知是源码还是配置的问题)不过我们这里的目的不是获得JBOSS的可执行jar(官方网站可以直接下载release版本),也没有高级到修改JBOSS源码的地步,所以我只下载两个核心模块:system和jmx 。其中,system是引导jboss启动并且载入核心模块的模块,而jmx则是jboss核心的运行模块(我们都知道JBOSS是完全基于JMX实现的)。简单的研究一下而已
细心观察各个模块可以发现,每个模块下都有一个.project文件,显然每个模块都是一个eclipse的project,所以单纯把全部模块check out到一个项目Branch_4_0是不行的,为什么呢:首先是下回来直接构建会没反应,因为eclipse默认把工程目录下的src作为源码目录,其他目录中的源码是不会被编译的,虽然可以手动添加更多的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中继续搜索,终于发现
http://anonsvn.jboss.org/repos/jbossas/archives/branches/ 中包含对应分支的各个工具包,在 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跟踪源代码等高级功能了。最起码,不会再有一堆红色叉叉影响我们看代码的心情了
附:CVS
服务器地址: :pserver:anonymous@anoncvs.forge.jboss.com:/cvsroot/jboss
但是我最初在上面下回来的源码存在一些错误,比如缺失一些源文件,而SVN
上的则相对完整
本来想插一些截图方便初学者的,不过blog插图片实在麻烦,懒得了 ^_^