Zookeeper源码编译

目录

1. 准备工作

1.1 下载Ant

1.2 解压Ant

1.3 配置Ant环境变量

2. Zookeeper源码下载编译

2.1 源码下载

2.2 Zookeeper源码编译

问题一: 下载ant-eclipse-1.0.bin.tar.bz2失败

问题二: 下载某个jar包异常导致编译失败

问题三: UnknowHostExecption:repo2.maven.org

3. 导入zookeeper源码到Idea中

3.1 zookeeper项目导入

3.2 配置zoo.cfg

3.3 引入maven依赖 

3.4 启动zookeeper

问题一: org.apache.zookeeper.version.Info找不到符号

问题二: 缺少org.apache.zookeeper.data等相关包

问题三: log4j配置无法引用


1. 准备工作

1.1 下载Ant

由于Zookeeper是由Ant编译,需下载Ant并安装配置; 下载地址: https://ant.apache.org/bindownload.cgi

1.2 解压Ant

1.3 配置Ant环境变量

变量名:  ANT_HOME

 变量值:  D:\java\apache-ant-1.10.7

变量名:  PATH

 变量值:  %ANT_HOME%\bin

CMD控制输入: ant -version

输出版本信息, 说明配置成功


2. Zookeeper源码下载编译

2.1 源码下载

地址: https://github.com/apache/zookeeper

注意: 不要下载过于老的版本, 我之前下载的是3.4.6的, 在该版本的build.xml中的maven仓库配置已经失效, 并且依赖的一些老版本的jar包也存在下载问题

2.2 Zookeeper源码编译

1. 打开CMD窗口

2. 切换到zookeeper源码根目录下

3. 输入ant eclipse 开始编译

问题一: 下载ant-eclipse-1.0.bin.tar.bz2失败

原因: 下载连接失效

<get src="https://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"
        dest="${java.server.resources.dir}/ant-eclipse-1.0.bin.tar.bz2" usetimestamp="false" />

解决:

将 "https://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"

修改为: "http://ufpr.dl.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"


再次输入: ant eclipse

编译成功! 

问题二: 下载某个jar包异常导致编译失败

在编译过程可能会因为网络问题出现某个jar包下载失败而导致编译失败的问题, 出现类似问题可以尝试重新(ant eclipse)编译一次; 在第二次编译时, 前一次已下载的jar包就不会重复下载, 只会下载之前未下载或下载失败的jar包, 然后重新编译即可

问题三: UnknowHostExecption:repo2.maven.org

如果下载时使用老版本(如: 3.4.6 )的zookeeper, 这里还会报错

由于老版本中的maven中央仓库配置的是repo2.maven.org, 现在已经无法访问, 所以下载依赖失败

如果把build.xml中的仓库地址改为repo1, 仍然存在依赖下载失败的问题

即使更换maven地址, 所依赖的jar包也无法下载, 所以可以考虑使用稍高一点版本的源码 


3. 导入zookeeper源码到Idea中

3.1 zookeeper项目导入

方式1: File => New => project from Exitsing Source => 选择已编译的zookeeper项目文件

方式2: idea开始界面 => Import Project => 选择已编译的zookeeper项目文件

选择 Eclipse 

一直Next


3.2 配置zoo.cfg

将zoo-sample.cfg复制一份,重命名为zoo.cfg, 并设置dataDir和dataLogDir

3.3 引入maven依赖 

3.4 启动zookeeper

Main类: org.apache.zookeeper.server.ZooKeeperServerMain

zoo.cfg地址: D:\Desktop\source_code\zookeeper\zookeeper-release-3.4.14\conf\zoo.cfg


问题一: org.apache.zookeeper.version.Info找不到符号

解决方案一: 参考播客 Zookeeper源码遇到的问题 org.apache.zookeeper.version.Info找不到符号

                                   zookeeper源码编译的坑

解决方案二:

创建接口Info.java

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";
}

将接口定义放在包org.apache.zookeeper.version下


问题二: 缺少org.apache.zookeeper.data等相关包

不知道为什么在编译时, org.apache.zookeeper.data等相关包并没有反编译出来, 导致程序报错

但是不影响项目运行, 因为只是缺少源码包, 而class文件并不缺少

问题三: log4j配置无法引用

在启动配置中添加VM options配置如下:

-Dlog4j.configuration=file:D:/Desktop/source_code/zookeeper/zookeeper-release-3.4.14/conf/log4j.properties

启动

启动成功!

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值