Kettle源碼的綠色開發環境搭建

 1.        前言

最近有些項目需要使用ETL工具,通過搜索引擎,找到了功能頗爲不錯的Kettle,而且是開源的,開發語言Java也屬於熟練的語言之一,所以決定選擇源碼剖析這條更爲專注的研究之路。

與大家思路不同的是,我希望用盡量少的知識和工具,來構建可理解的項目框架。也就是說使用原生態的開發工具,僅僅需要源碼和必要的配置文件,來搭建研究環境。本文使用的原材料只有3類:

  • git客戶端
  • Kettle安裝包
  • Eclipse或者NetBeans等開發工具

源碼可以通過git客戶端下載,地址和主要源碼分支如下圖所示(我下載的版本是6.1.0.6):


下載後,可以看到很多文件夾與文件。其中,與環境搭建相關的主要文件夾解釋如下:

  • core:核心源碼,包括異常、日誌、虛擬文件系統、國際化等。
  • engine:引擎源碼,主要實現轉換與作業的執行邏輯,也包括Pan、Kitchen、Carte等命令行入口。
  • dbdialog:數據庫連接的配置源碼。
  • ui:圖形化界面源碼,Spoon相關菜單、工具欄、對話框、編輯器都在這裏實現。

 

2.        說明

具有Java開發經驗的朋友都知道,只有源碼是不足以正常通過編譯的,還需要一個非常重要的材料,那就是jar包。現在應該知道Kettle安裝包的作用了!如果Kettle的安裝包可以正常運行,那麼相關的jar包肯定是必備的,所以我們只需要將Kettle安裝包中的jar文件拷貝引用或者直接引用到項目中即可。

那麼現在只剩一個問題,我如果碰到編譯錯誤,也就能夠看到是哪個包缺少引用,但是我知道包的名稱,又如何確定是哪個jar提供的呢?

爲此,我專門寫了一個小的類,輸入包的名稱,我就會自動從指定文件夾下面的所有jar中查找,看看誰有這個包。如果你感興趣,可以發郵件到我的郵箱,本人樂意免費提供。

最終,我搭建的工程以及相互依賴關係如下圖(暫不考慮插件項目):


項目與源碼的文件夾的關係,看項目名稱即可猜出。

3.        實戰

下面以Eclipse爲例(版本:eclipse-java-neon-R-win32-x86_64),通過截圖說明各項目的文件結構。注意,部分文件(如xul、xml等)也需要從安裝包拷貝。

  • kettle-core項目

代碼結構:


依賴的jar包:

 

  • kettle-engine項目

代碼結構:


依賴的jar包:


 

  • kettle-dbdialog項目

代碼結構:


依賴的jar包:

 

  • kettle-ui項目

代碼結構:


依賴的jar包:

注意:其中對swt相關包的依賴,只有看你自己的機器環境選擇!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章