zookeeper源码3.6.0本地idea构建运行

环境信息

IntelliJ IDEA 2019.2.4 (Ultimate Edition)
Build #IU-192.7142.36, built on October 29, 2019

1.下载源码

方式一:从国外 Github 下载 zookeeper 源码 Go

git clone --branch release-3.6.0 git@github.com:apache/zookeeper.git

方式二:从国内 Gitee 下载 zookeeper 源码镜像 Go

git clone --branch release-3.6.0 git@gitee.com:apache/zookeeper.git

2.源码构建

方式一:进到根⽬录下, 执⾏

mvn clean install -DskipTests

方式二:idea 操作:先把跳过单元测试选上,再分别执行 clean 和 install

3.启动主程序

  • MainClass: org.apache.zookeeper.server.ZooKeeperServerMain
  • Program Arguments: confzoo.cfg
  • Use classpath of module: 选择 zookeeper
  • 勾上 Include dependencies with 'Provided' scope

解释:我从项目根目录拷贝了 zoo_sample.cfg 文件并重命名为 zoo.cfg,主要修改 dataDir 和 clientPort。

因为 zoo_sample.cfg 中的 dataDir 是 Linux 文件路径,而我是在 Windows 平台上运行,所以才修改的。

dataDir=D:\tmp\zookeeper

修改 clientPort 主要是因为端口占用异常 Caused by: java.net.BindException: Address Already in use: bind

clientPort=2182

解释:勾上 Include dependencies with 'Provided' scope,是因为我出现了启动时找不到类的异常 Caused by: java.lang.ClassNotFoundException: com.codahale.metrics.Reservoir

4.拷贝log4j.properties

conflog4j.properties 拷贝到目录 zookeeper-serversrcmain esources 下:

同时在 Project Structure 中把 zookeeper-serversrcmain esources 标记为 Resources :

*生成代码的操作

这一步可以放在构建源码之后做,我现在不确定这一步不做会有多大影响,所以放在了这边。

参考文档

zookeeper源码3.6.0本地idea构建运行 阅读

原文地址:https://www.cnblogs.com/kendoziyu/p/15079906.html