准备工作:
Eclipse
Jdk8+
当前以kettlt7.1版本开发:
Kettle源码:https://github.com/pentaho/pentaho-kettle/tree/7.1
Kettle安装文件下载:
https://ayera.dl.sourceforge.net/project/pentaho/Data%20Integration/7.1/pdi-ce-7.1.0.0-12.zip
源码调试:
- 创建普通java项目
- 在项目根目录下创建core、dbdialog、engine、plugins、ui四个目录:
- 在源码解压目录找到对应目录,将java等相关文件复制到刚创建的四个目录下:
注意直接复制src下文件即可,不包含src目录本身
pentaho-kettle-7.1_bak\core\src\ -> core
pentaho-kettle-7.1_bak\dbdialog\src\ -> dbdialog
pentaho-kettle-7.1_bak\engine\src\ -> engine
pentaho-kettle-7.1_bak\plugins\ -> plugins
pentaho-kettle-7.1_bak\ui\src\;pentaho-kettle-7.1_bak\assembly\package-res\ui\ -> ui
再添加一个images目录,为了方便直接使用自带的svg图片:
pentaho-kettle-7.1\ui\ui\images –> ui\images
目录结构截图:
- 找到安装解压目录,注意,这里是安装文件的解压目录:
复制上面4个目录到项目根目录下
同时,进入lib目录下,删除kettle开头的三个jar包:
目录结构截图:
- 项目添加刚复制过来的lib:
选中项目->Build Path -> Add Libraries -> User Libraries -> New ,新建library,,点击Add JARS添加当前目录下jar,添加lib以及libswt下的swt.jar,swt.jar根据自己当前的操作系统选择对应版本。如我的机器是win64
- 将core、dbdialog、engine、ui四个目录,作为源码目录:
选中文件夹,右键,Build Path -> Use as Source Folder
最后形成项目结构:
- 启动org.pentaho.di.ui.spoon.Spoon.java能正确打开,则为正确。
SWT开发
1.安装插件:
http://www.eclipse.org/windowbuilder/download.php
选择对应的版本:如我eclipse是4.7,为eclipse安装插件:
http://download.eclipse.org/windowbuilder/WB/integration/4.7/
或者直接在Eclipse Marketplace搜索swt:
新建项目或者直接创建一个Application Window
插件开发
默认当前源码启动的kettle,组件比安装版本的少了很多,因为这些组件源码都是在plugins下面,这里我们不使用默认的plugins,直接自己写:
- 在plugins目录下新建steps目录
- 在steps目录下新建插件目录:validator
- 从ui\images目录下复制2个图标文件,用于插件显示时候的图标,比如我复制了VLD.png和VLD.svg,再创建plugin.xml 在validator目录下
- 插件需要使用到额外的jar包,在validator目录下创建lib目录,并放所需jar包
- 选择validator,右键,Build Path -> Use as Source Folder
- Lib下的jar添加到引用jar包
最后目录结构:(message用于i18n非必须)
plugin.xml 具体根据实际情况配置,基本看名字就知道意思了,其中category为kettle打开后的组件分类,如:输入、输出等
<?xml version="1.0" encoding="UTF-8"?> <plugin id="TemplatePlugin" iconfile="VLD.svg" description="Template Plugin" tooltip="Only there for demonstration purposes" category="MyValidator" classname="validator.ValidatorMeta"> <!--插件入口类--> <libraries> <library name="myvalidator"/> </libraries>
<localized_category> <category locale="en_US">MyValidator</category> <category locale="zh_CN">MyValidator</category> </localized_category> <localized_description> <description locale="en_US">数据校验插件</description> <description locale="en_US">数据校验插件</description> </localized_description> <localized_tooltip> <tooltip locale="en_US">数据校验插件</tooltip> <tooltip locale="en_US">数据校验插件</tooltip> </localized_tooltip> </plugin> |
直接使用eclipse export导出jar包,放入到安装的kettle文件plugin目录下,启动即可~