參考:https://my.oschina.net/nivalsoul/blog/779968
搞了一下午的eclise搭建kettle源代碼,遇到了幾個坑:下面總結一下搭建的過程:
1、引言
Data Integration - Kettle 作爲免費開源的ETL工具,可以通過其桌面程序進行ETL步驟的開發並執行。kettle以插件形式來實現每個轉換步驟的工作,發行版中已經提供了常用的轉換清洗插件,如果還不能滿足業務需求的話,則可以自己開發相應插件實現。但在使用原有插件或者自定義插件的過程中遇到問題時,如果不好定位原因,則可以通過源碼環境來調試,可以更加方便和容易地解決問題。另外,通過源碼的開發和學習,也能更加深入地理解kettle的原理。
2.環境準備
2.1下載kettle工具包
下載地址:https://sourceforge.net/projects/pentaho/files/Data%20Integration/6.1/pdi-ce-6.1.0.1-196.zip/download
解壓後的如下:
2.2 下載kettle源碼
源碼下載地址:https://github.com/pentaho/pentaho-kettle,在master下選擇tags選項卡,選取自己需要的版本,並下載。
注意:從git上下載一個與自己開發用kettle版本一致的 發行版源碼 例如:我使用的是pdi-ce-6.1.0.1-196,那麼在下載時就選擇:6.1.01-R。
如果下載其他版本的源碼,自己去下載相應的發行版kettle後,也可取得裏面的lib/*.jar。
本文下載pentaho-kettle-6.1.0.1-R.zip,解壓後文件夾名爲pentaho-kettle-6.1.0.1-R,如下圖:
3、開發環境搭建
具體步驟如下:
1)在Eclipse中新建java project項目kettle-src,java環境設置爲JDK或者JRE,不要選JavaSE,不然會報缺少Krb5loginModule的錯誤。
2)在kettle-src根目錄下,新建core、engine、dbdialog、ui四個文件夾(注意是文件夾,非package!),並將四個文件夾設置爲source folder(在文件夾上右鍵點擊>>Build Path>>Use as Source Folder或者在項目的Java Build Path裏面選擇Source選項卡,將四個文件夾添加進去)。
3)進入源碼解壓包,將pentaho-kettle-6.1.0.1-R\core\src下面的內容全部拷貝到項目的core文件夾下,同樣,將engine、dbdialog、ui三個文件夾src下的內容也分別拷貝到項目對應的文件夾下。
4)將源碼包下pentaho-kettle-6.1.0.1-R\assembly\package-res\ui(或者工具包下ui文件夾data-integration6.1\ui)裏面的內容拷貝到項目ui文件夾下。
5)進入kettle桌面工具的解壓包,將lib文件夾(data-integration6.1\lib)及其裏面的jar全部拷貝到項目根目錄下,並刪除kettle-core-6.1.0.1-196.jar、kettle-dbdialog-6.1.0.1-196.jar、kettle-engine-6.1.0.1-196.jar三個jar包,再將data-integration6.1\libswt目錄下,對應操作系統的文件夾下的swt.jar(本文選擇data-integration6.1\libswt\win64\swt.jar)拷貝到項目的lib下,最後將lib下所有的jar包添加到項目的build path中。
6)在項目根目錄下新建plugins文件夾,然後根據需要將工具包下的plugins裏面的插件拷貝到plugins目錄下(如果不在項目下建立plugins目錄,也可以在系統的user_home/.kettle/下面創建plugins目錄,比如在C:\Users\Administrator\.kettle下面創建)。
至此,環境準備完畢,最後項目結構如下圖所示:
最後啓動就可以了:
接着就會出現:
接着輸入spoon kettle就會啓動。看圖