在 IntelliJ IDEA 中定制开发 ZooKeeper

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 这两天我尝试在业余时间做一个 Side Project,对 ZooKeeper 做一些修改来实现一个大胆的想法。之前也做过几个项目,但是没有一个系统是像 ZooKeeper 这样的基础设施,也没有一个项目的工具链像 ZooKeeper 这样陈旧,还在用 Ant 管理项目,用 Ivy 下载依赖,用 jute 定义 RPC……简直就是在逛古董店啊! 这里分享一下我在 OS X El Capita

这两天我尝试在业余时间做一个 Side Project,对 ZooKeeper 做一些修改来实现一个大胆的想法。之前也做过几个项目,但是没有一个系统是像 ZooKeeper 这样的基础设施,也没有一个项目的工具链像 ZooKeeper 这样陈旧,还在用 Ant 管理项目,用 Ivy 下载依赖,用 jute 定义 RPC……简直就是在逛古董店啊!

这里分享一下我在 OS X El Capitan 上构建 ZooKeeper 开发环境过程中增长的人生经验。

===

源码自然是从 apache/zookeeper 抓取,clone 下来之后先 git checkout release-3.4.8 把代码恢复到最新的 stable,然后以这个 tag 为基准拉出自己的开发分支。

IntelliJ 并没有提供 Ant 项目导入,默认只支持 Maven、Gradle 和 Eclipse 等几个还有活力的项目管理工具。

既然我们不能 Import,就只能 Open 了,直接用 IntelliJ IDEA 去打开项目所在的目录。这时候 IDEA 会认为整个项目里的文件都是普通文本,并不能识别出这是一个 Ant 管理的 Java 项目。我们需要给 IDEA 一些信息。先配置一下 Ant Build,让 IDEA 知道这个项目有哪些 Ant 任务。

然后执行 bin-package 这个任务,先构建出一个 ZooKeeper 分发包,构建结果和下载下来的依赖都在 build 目录。

到此为止,ZooKeeper 的服务端已经能够从 Ant 构建了,但是 IDEA 还没全完配置好,比如还没识别哪些文件是 Java 代码,也就会出现这样的情况。

这时候 IDEA 的 Project Structure 设置开始粉墨登场。

这里也能看到 IDEA 只知道项目目录,不知道项目中哪些目录是 Source,哪些目录是 Resource。ZooKeeper 的目录那么多,项目结构我也不熟,要让我一个一个目录添加真是要命。于是我偷了个懒,先把项目目录从 Project Structure 中删了,再加回去,这时候 IDEA 就会帮我分析出有 Java 代码的目录。

这目录也太多了啊,连 build 目录都给我加进来,真想对 IDEA 说一句「妈的智障」。我只好手动调整,把 build 目录排除,把带 test 的目录标记为 Tests,自动生成的目录标记为 Generated,如此这般就把 ZooKeeper 的代码目录结构整理清楚了。

如此这般之后就可以愉快地 Coding 了~

另外,我在 JetBrains 全家桶上又遇到了 Case Sensitive 文件系统带来的问题。一打开 ZooKeeper 项目就给我提示这个:

其实也简单,就按照提示里说的,去给 IDEA 加个启动参数就好了。在 /Applications/IntelliJ IDEA.app/Contents/bin/idea.properties 里追加 idea.case.sensitive.fs=true 即可。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
2月前
|
开发工具 开发者 git
IntelliJ IDEA 插件推荐:提升开发效率的神器
本文介绍了 IntelliJ IDEA 的多个实用插件,涵盖从提高开发效率到美化界面的各个方面。
101 1
|
3月前
|
IDE 开发工具
【开发IDE升级】如何对IDEA版本进行升级
本文介绍了如何将 IntelliJ IDEA Ultimate 从 2020.2.2 版本升级到 2022.3.2 版本。主要内容包括准备工作、卸载旧版本和安装新版本的步骤。首先,从官网下载所需版本并备份旧版配置;接着,通过 Uninstall.exe 卸载旧版,保留配置和插件;最后,安装新版并完成激活。详细的操作步骤和截图帮助用户顺利完成升级过程。
3206 1
【开发IDE升级】如何对IDEA版本进行升级
|
3月前
|
前端开发 Java 开发者
这款免费 IDEA 插件让你开发 Spring 程序更简单
Feign-Helper 是一款支持 Spring 框架的 IDEA 免费插件,提供 URL 快速搜索、Spring Web Controller 路径一键复制及 Feign 与 Controller 接口互相导航等功能,极大提升了开发效率。
|
8月前
|
IDE Oracle Java
day4:JDK、IntelliJ IDEA的安装和环境变量配置
【7月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
276 0
|
5月前
|
人工智能 Java 数据库连接
IDEA开发 常用代码规范插件 常用辅助类插件
IDEA开发 常用代码规范插件 常用辅助类插件
129 0
|
8月前
|
Java Android开发 Spring
idea开发常用快捷键总结
idea开发常用快捷键总结
241 9
|
8月前
|
网络协议 安全 Linux
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
173 2
|
9月前
|
Linux 开发工具 Windows
在WSL2中安装IntelliJ IDEA开发工具
在WSL2中安装IntelliJ IDEA开发工具
775 2
|
9月前
|
IDE Java Scala
IntelliJ IDEA 2023.3 最新变化2
IntelliJ IDEA 2023.3 最新变化
125 1
|
8月前
|
缓存 Java Maven
IntelliJ IDEA中无法加载jar包导致出现“cannot resolve symbol...”问题的解决
IntelliJ IDEA中无法加载jar包导致出现“cannot resolve symbol...”问题的解决
308 0

热门文章

最新文章