序:
最近公司中使用到otter進行數據同步,otter又依賴於zookeeper。所以就在github上下載了一份3.4.14的代碼,編譯就出現了這篇文章。其實可以直接下載release版本的,但是既然下載了源碼就自己編譯下。
0x01:准備資源
zookeeper源碼:https://github.com/apache/zookeeper/releases
eclipse
ant
0x02:ant重構
下載ant后解壓,並新建ANT_HOME環境變量,變量值為ant的解壓路徑。在path變量中添加%ANT_HOME%\bin。
解壓zookeeper源碼,並cmd到解壓后的根目錄(與build.xml同級),輸入ant eclipse
ant eclipse
需要等待幾分鍾(取決於網速),最后出現BUILD SUCCESSFUL即成功。
0x03:導入Eclipse
打開Eclipse -> File -> Import -> Existing Projects into Workspace -> Finish
導入后運氣不好會有下面幾個錯誤。需要修改一下編譯的jdk,版本為1.6。ZooKeeper項目右鍵Properties -> Java Compiler
正常情況下錯誤應該只剩下9個,原因是沒有info.java版本信息,這個應該是每次打包時候手動生成的版本號。可以通過org.apache.zookeeper.version.util.VerGen.java生成。點擊VerGen.java右鍵 -> Run As -> Run Configurations -> Arguments,在Program arguments中輸入三個參數,用空格分隔,第一個為ZooKeeper版本號,第二個為修訂版本號,第三個為編譯日期后Run,執行后刷新項目,會生成一個org.apache.zookeeper.version.info.java的文件,拷貝到ZooKeeper\zookeeper-server\src\main\java\org\apache\zookeeper\version下,刷新項目后解決所有異常。
0x04:生成JAR文件
選中除test項目外的java文件右鍵Export -> JAR file -> Finish,勾選中右側的LICENSE.txt文件
0x05:運行Zookeeper
將生成JAR文件拷貝到項目的根目錄,重命名~/conf/zoo_sample.cfg為~/conf/zoo.cfg。運行~/bin/zkServer.cmd即可。