Kettle系列: 馬進舉開源的Kettle通用插件 KettleEasyExpand

擴展Kettle功能, 常常使用 user defined java class 組件, 或者本身開發Java插件. 兩種方式都有各自的痛點:javascript

1. 在user defined java class 組件中寫java代碼, 該環境沒有代碼自動提示, 沒有語法檢查, 基本上需不斷試錯才能完成開發, 效率很低.
2. 開發 Kettle 插件, 難度較大, 須要很瞭解 kettle meta基礎類, 另外UI開發也很難.
下面這個插件給出了很好的解決方法.

KettleEasyExpand 插件簡介
一個簡化kettle插件開發的通用插件,採用JSON做爲參數配置,省去ui調試設計步驟,只需一個類就能夠開發一個插件。基於本插件開發的插件將很容易集成到kettle管理平臺中去。html

===================
通用的Kettle插件, KettleEasyExpand
===================
項目文檔: https://github.com/majinju/KettleEasyExpand/blob/master/doc/KettleEasyExpand.md
項目地址: https://github.com/majinju/KettleEasyExpand
https://github.com/majinju/KettleUtil/blob/master/src/main/java/cn/benma666/kettleutil/utilrun/KurDemo.javajava


===================
設計初衷
===================
該kettle插件功能相似kettle現有的定義java類插件,自定java類插件主要是支持在kettle中直接編寫java代碼實現自定特殊功能,而本控件主要是將自定義代碼轉移到jar包,就是說自定義功能的實現改成在eclipse等ide中開發。git

設計本插件的緣由是直接在kettle中寫user defined java class 代碼是很不容易的事,開發體驗與eclipse差得遠,java語法還要受到限制,調試麻煩。實現點簡單的邏輯還行,稍微複雜一點就比較麻煩,須要對java和kettle相關接口很熟悉。而簡單的功能能夠採用javascript腳本實現,複雜的功能通常人很難直接在自定義java類控件中編寫java實現。github

有人說能夠每次直接開發新插件,雖說java的插件機制仍是很不錯的,但開發一個插件仍是沒那麼容易的,須要設計元數據,插件件功能實現,插件操做界面設計等,其中操做界面的調整是我最不肯意花時間的,慢慢調我也能調出常見控件的配置界面,但我以爲不必,因此要實現一個完善的插件須要作的事情仍是不少的。eclipse

而本插件綜合了以上兩種機制,既有自定義java類的簡單性,直接編寫核心業務代碼,操做界面統一使用一個JSON對象做爲參數設置途徑,因此基於此開發功能,只需繼承一個基類而編寫一個功能實現類就能夠了;又有直接開發插件的便捷性,只需將相關的jar包做爲用戶類庫導入項目,建立一個類,繼承基類,就能夠在eclipse中盡情的編寫你的業務代碼了。ide

===================
環境搭建
===================
1. 在eclipse中建立用戶類庫ku,到kettle管理平臺項目(https://github.com/majinju/kettle-manager)介紹的博文中下載0.2.0版部署包,而後將部署包的lib目錄中的jar所有加入。
2. 在eclipse中建立用戶類庫kettleLib,將你的kettle的目錄下的lib所有加入。
3. 在eclipse中建立一個java項目,添加前面建立的兩個用戶類庫到構建路徑。
4. 而後就能夠新建一個java類,按後面的步驟進行插件開發了。ui


Step 插件示例
https://github.com/majinju/KettleEasyExpand/blob/master/src/main/java/cn/benma666/kettle/easyexpand/EasyExpandDemo.java
Job Entry 插件示例
https://github.com/majinju/KettleEasyExpand/blob/master/src/main/java/cn/benma666/kettle/easyexpand/JobEntryEasyExpandDemo.java


===================
Ketlt-1.kettle源碼獲取與運行
===================
http://www.cnblogs.com/majinju/p/4455107.html插件

相關文章
相關標籤/搜索