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:
conf\zoo.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
将 conf\log4j.properties
拷贝到目录 zookeeper-server\src\main\resources
下:
同时在 Project Structure 中把 zookeeper-server\src\main\resources
标记为 Resources :
*生成代码的操作
这一步可以放在构建源码之后做,我现在不确定这一步不做会有多大影响,所以放在了这边。
参考文档
zookeeper源码3.6.0本地idea构建运行 阅读
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2020-07-30 TCP三次握手和四次挥手与Java Socket