研究zookeeper的源碼,第一步就是搭建環境,利用idea啓動zk的源碼,過程比較簡單,網上的教程也是很多,可是搞起來仍是會遇到各類各樣的問題,這裏作個記錄。java
一、zookeeper源碼3.5.5版本
二、idea編輯器
三、基於ant構建zookeepergit
一、下載地址:https://ant.apache.org/bindownload.cgi
二、下載版本:1.10.7,zip包
三、解壓,配置環境變量ANT_HOME=D:\apache-ant-1.10.7-bin\apache-ant-1.10.7
四、編輯Path,增長%ANT_HOME%\bin
五、編輯classpath,增長%ANT_HOME%\libgithub
一、下載zk源碼: https://github.com/apache/zookeeper
二、切換到分支:git checkout branch-3.5.5
三、執行ant eclipse構建:zk不支持idea項目,全部使用ant eclipse 直接構建成eclipse項目,構建成功會出現build success字樣。
apache
通常這裏不會報錯。markdown
一、啓動zookeeper服務,找到文件ZooKeeperServerMain,並調用main方法。
二、發現報錯,Version.java下的類Info沒法找到,須要新建這個類。
三、新建Info文件,便可eclipse
package org.apache.zookeeper.version; public interface Info { int MAJOR=1; int MINOR=0; int MICRO=0; String QUALIFIER=null; int REVISION=-1; //TODO: remove as related to SVN VCS String REVISION_HASH="1"; String BUILD_DATE="2019-3-4"; }
注意:若是還有其餘類找不到,須要多進行幾回ant eclipse,或者從新拉zk的代碼,從新執行ant eclipse。這裏我也是遇到了這種狀況,通過幾回就能夠了。至於爲何尚未獲得答案!編輯器
若是啓動過程遇到如下狀況:
ide
須要配置log4j的配置,參考下一步的配置。測試
四、配置啓動ZooKeeperServerMain參數
ui
五、從新執行ZooKeeperServerMain的main方法,啓動zookeeper服務。
六、注意8080端口不要被其餘進程佔用,由於啓動須要這個端口。
七、在本地使用zkCli.cmd測試服務是否啓動
接下來能夠嘗試zookeeper裏的各類測試用例,debug代碼,暢遊源碼了。