這兩天我嘗試在業餘時間做一個 side project,對 zookeeper 做一些修改來實作一個大膽的想法。之前也做過幾個項目,但是沒有一個系統是像 zookeeper 這樣的基礎設施,也沒有一個項目的工具鍊像 zookeeper 這樣陳舊,還在用 ant 管理項目,用 ivy 下載下傳依賴,用 jute 定義 rpc……簡直就是在逛古董店啊!
這裡分享一下我在 os x el capitan 上建構 zookeeper 開發環境過程中增長的人生經驗。
===
intellij 并沒有提供 ant 項目導入,預設隻支援 maven、gradle 和 eclipse 等幾個還有活力的項目管理工具。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauADdwAHNwEDbwIja6VXZ6pWOph2NmFzdnFmYjZTOmJzNvwVZnJXYs9CXuNmLn1Wah5Waz5SMzd3Lc9CX6MHc0RHaiojIsJye.jpg)
既然我們不能 import,就隻能 open 了,直接用 intellij idea 去打開項目所在的目錄。這時候 idea 會認為整個項目裡的檔案都是普通文本,并不能識别出這是一個 ant 管理的 java 項目。我們需要給 idea 一些資訊。先配置一下 ant build,讓 idea 知道這個項目有哪些 ant 任務。
然後執行 <code>bin-package</code> 這個任務,先建構出一個 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 加個啟動參數就好了。在 <code>/applications/intellij idea.app/contents/bin/idea.properties</code> 裡追加 <code>idea.case.sensitive.fs=true</code> 即可。