ZooKeeper源代码研究(一)
去年在工作中使用了ZooKeeper进行配置管理,今年准备进一步使用ZooKeeper,因此对其的源代码进行一下研究,也学习一下Java网络编程及异步IO。
首先从 http://svn.apache.org/repos/asf/zookeeper/tags/release-3.4.5 下载最新的release版本源代码,由于其使用Ivy进行依赖包进行,就先搞了一下Ivy环境。
ivy属于ant的一个子项目
从 http://ant.apache.org/ivy/ 下载ivy的最新版2.3.0,解压后复制ivy-2.3.0.jar到ant的lib目录下。
安装ivy for eclipse 的插件
从 http://ant.apache.org/ivy/ivyde/download.html 下载 IvyDE 并解压到eclipse的dropins目录下,重新启动eclipse后,可以在Preferences里面看到Ivy的配置。
新建一个Java项目,导入ZooKeeper源代码到项目中,在项目配置的Libraries中添加Ivy的项目依赖。添加完成后可以在项目中看到依赖的Jar包。
完成上述步骤后,大部分Java文件可以通过编译,但有些源代码找不到依赖的类,查看都是
org.apache.zookeeper.data
org.apache.zookeeper.proto
这2个包下面的,没有找到原因,也没有找到这2个包的源代码,临时解决方法,在Ivy的配置文件中加入:
<dependency org="org.apache.zookeeper" name="zookeeper" rev="3.4.5"/>
这样基本所有的代码都可以编译通过了。