天天看點

在 IntelliJ IDEA 中定制開發 ZooKeeper

這兩天我嘗試在業餘時間做一個 side project,對 zookeeper 做一些修改來實作一個大膽的想法。之前也做過幾個項目,但是沒有一個系統是像 zookeeper 這樣的基礎設施,也沒有一個項目的工具鍊像 zookeeper 這樣陳舊,還在用 ant 管理項目,用 ivy 下載下傳依賴,用 jute 定義 rpc……簡直就是在逛古董店啊!

這裡分享一下我在 os x el capitan 上建構 zookeeper 開發環境過程中增長的人生經驗。

===

intellij 并沒有提供 ant 項目導入,預設隻支援 maven、gradle 和 eclipse 等幾個還有活力的項目管理工具。

在 IntelliJ IDEA 中定制開發 ZooKeeper

既然我們不能 import,就隻能 open 了,直接用 intellij idea 去打開項目所在的目錄。這時候 idea 會認為整個項目裡的檔案都是普通文本,并不能識别出這是一個 ant 管理的 java 項目。我們需要給 idea 一些資訊。先配置一下 ant build,讓 idea 知道這個項目有哪些 ant 任務。

在 IntelliJ IDEA 中定制開發 ZooKeeper

然後執行 <code>bin-package</code> 這個任務,先建構出一個 zookeeper 分發包,建構結果和下載下傳下來的依賴都在 build 目錄。

在 IntelliJ IDEA 中定制開發 ZooKeeper

到此為止,zookeeper 的服務端已經能夠從 ant 建構了,但是 idea 還沒全完配置好,比如還沒識别哪些檔案是 java 代碼,也就會出現這樣的情況。

在 IntelliJ IDEA 中定制開發 ZooKeeper

這時候 idea 的 project structure 設定開始粉墨登場。

在 IntelliJ IDEA 中定制開發 ZooKeeper

這裡也能看到 idea 隻知道項目目錄,不知道項目中哪些目錄是 source,哪些目錄是 resource。zookeeper 的目錄那麼多,項目結構我也不熟,要讓我一個一個目錄添加真是要命。于是我偷了個懶,先把項目目錄從 project structure 中删了,再加回去,這時候 idea 就會幫我分析出有 java 代碼的目錄。

在 IntelliJ IDEA 中定制開發 ZooKeeper

這目錄也太多了啊,連 build 目錄都給我加進來,真想對 idea 說一句「媽的智障」。我隻好手動調整,把 build 目錄排除,把帶 test 的目錄标記為 tests,自動生成的目錄标記為 generated,如此這般就把 zookeeper 的代碼目錄結構整理清楚了。

在 IntelliJ IDEA 中定制開發 ZooKeeper

如此這般之後就可以愉快地 coding 了~

另外,我在 jetbrains 全家桶上又遇到了 case sensitive 檔案系統帶來的問題。一打開 zookeeper 項目就給我提示這個:

在 IntelliJ IDEA 中定制開發 ZooKeeper

其實也簡單,就按照提示裡說的,去給 idea 加個啟動參數就好了。在 <code>/applications/intellij idea.app/contents/bin/idea.properties</code> 裡追加 <code>idea.case.sensitive.fs=true</code> 即可。