在 IntelliJ IDEA 中定制开发 ZooKeeper

这两天我尝试在业余时间做一个 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 即可。

时间: 2024-09-20 00:12:13

在 IntelliJ IDEA 中定制开发 ZooKeeper的相关文章

spark (java API) 在Intellij IDEA中开发并运行

概述:Spark 程序开发,调试和运行,intellij idea开发Spark java程序. 分两部分,第一部分基于intellij idea开发Spark实例程序并在intellij IDEA中运行Spark程序.第二部分,将开发程序提交到Spark local或者hadoop YARN集群运行.Github项目源码 图1,直接在intellij IDEA(社区版)中开发调试,直接run. 图2,直接在intellij IDEA(社区版)中用hadoop YARN模式. Github项目源

VB中定制DllRegisterServer、DllUnregisterServer

server VB中定制DllRegisterServer.DllUnregisterServer -阿鬼(heroyin) VB作为一种简单容易上手的语言,可以让开发者快速上手,开发速度快,效率高.但它过分的封装也给开发者带来诸多不便. 问题的由来最近本人在开发一个插件结构的项目中就遇到了一个麻烦,我的项目是采用COM架构,框架由DELPHI开发,插件为COM组件,插件可以由其他语言开发,当然也包括VB.每个插件必须注册为一个固定的组件类别(Categories).在其他语言如VC.DELPH

国外有哪些软件定制开发平台(或者软件快速开发平台)?

问题描述 这里提问的不是软件开发平台(不包含VisualStudio这类开发工具),而是客户化的软件定制开发平台.所谓客户化,就是由用户自己来实现的,一般不需要编写程序代码,而只进行简单的拖拽或配置.这种平台一般都是框架开发平台,能解决居多企业管理系统这类软件的危机.在我国,这种快速开发平台也有一些,做得好的并不多见,例如:ExceServer,普元EOS,方正FIX,顶点LIVEBOS,UCML,金富瑞等.有没有朋友可以给我提供一点基于框架的软件开发平台.软件快速开发平台.软件在线开发平台等等

如何在Eclipse中定制自己的比较中心

Eclipse 比较中心介绍 目前,http://www.aliyun.com/zixun/aggregation/13428.html">Eclipse 支持任何两个相同类型的文件的比较,例如选中两个相同类型文件 -> 右键 ->Compare with->Each other,Eclipse 会根据文件类型进行比较,通常我们用到的是文本比较,因此本文中也是针对文本比较进行功能上的丰富和扩展. 如下图为 Eclipse 的比较过程,Eclipse 的比较主要分为两部分,

Intellij idea配置scala开发环境

1.Intellij idea配置scala开发环境 解决Plugin Scala was not installed: No route to host Plugin Scala was not installed: connect timed out Plugin Scala was not installed: Cannot download 'http://plugins.jetbrains.com/files/1347/27110/scala-intellij-bin-2016.2.1

一步到位分布式开发Zookeeper实现集群管理

说到分布式开发Zookeeper是必须了解和掌握的,分布式消息服务kafka .hbase 到hadoop等分布式大数据处理都会用到Zookeeper,所以在此将Zookeeper作为基础来讲解.   Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等. Zookeeper 的核心是广播,这个机制保证了各个Server之间的同步.实现这个机制的协议叫做Zab协议. Zab协议有两种模式,

WSS3SDK之演练--在mobile的显示窗体中定制列表项标题

本次演练中将向大家展示如何通过实现一个自定义RenderingTemplate控件来对mobile页面中字段的渲染进行定制.示例展示了如何在mobile的显示页面中定制通知列表的项的标题字段的显示. 正如先前在mobile页面渲染机制一节所描述的,一个Microsoft.SharePoint.MobileControls.SPMobileListFIEldSelector 模板选取器控件会被调用,并通过一条链的调用,最终找到显示在页面中的控件. 基于当前的列表类型和字段(比如本例中的通知和标题)

如何在Word2013中添加“开发工具”选项卡

  显示开发工具方法一: 步骤一:点击Word主程序界面中的"文件"按钮.点击Word主程序界面中的"文件"按钮. 步骤二:在打开的扩展面板中点击"选项"项.在打开的扩展面板中点击"选项"项进入. 步骤三:从打开的"Word选项"界面中,切换至"自定义功能区"选项进入. 步骤四:在打开的"自定义功能区"选项卡中,勾选"主选项卡"界面中的"

教你如何获取ipa包中的开发文件

教你如何获取ipa包中的开发文件 1. 从iTunes获取到ipa包 2. 修改ipa包然后获取里面的开发文件