参考转载: https://zhuanlan.zhihu.com/p/140302047
从git获取源码
git clone https://github.com/apache/zookeeper
最新版本的 zookeeper 已经使用了 maven 进行管理了、不再需要安装 Ant
下载完成之后、使用 Idea
作为一个 maven 项目打开
切换到稳定的分支git checkout -b v1 origin/v1
,否则可能使用maven命令会编译不通过
我这边是切换到3.6.1这个分支
执行以下命令,不报错则表示成功
mvn clean package -Dmaven.test.skip=true
拷贝配置文件
- 拷贝
zoo_sample.cfg
文件至相同文件夹下,名为:zoo.cfg
; - 修改
zoo.cfg
的配置文件,主要是zk数据位置的存放位置
dataDir=D:/Code/apache/zkData
-
将
zookeeper-server/src/main/resources
目录标记为Resources Root
-
拷贝
log4j.properties
文件至:zookeeper-server/src/main/resources
,文件名还是log4j.properties
不变.
增加启动项
找到类 org.apache.zookeeper.server.quorum.QuorumPeerMain
在参数中加上 conf/zoo.cfg
修改pom文件中scope
将以下依赖的 scope
注释掉
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
<version>1.1.7.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</dependency>
执行server
先执行mvn clean install -DskipTests
命令
在启动QuorumPeerMain
的main方法,正常启动,表示zkserver启动成功
执行client
如 server 一般、配置入口类 org.apache.zookeeper.ZooKeeperMain
将下面的依赖的 scope
注释掉
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
</dependency>
启动ZooKeeperMain
是main方法,正常启动,表示zkclient启动成功
至此,已成功编译运行 zookeeper的源码
网友评论