先下载标准插件模板    地址     http://www.ahuoo.com/download/TemplateStepPlugin.rar

将下载的jar包解压后  导入eclipse项目中

有错误,一般是包引起的  将build path中 下面的包用  kettle目录下   lib 下的 几个包替换  顺便还要加上  libswt  /win32  (取决自己电脑位数)下的 swt.jar

包加入

重新编译工程

Link source

右键kettle 选择property   选择 source   然后  点击link source   选择上面TemplateStep项目的 src

这样,在项目TemplateStep中就可以进行调试了,相应的改变在kettle中也会改变

然后在  kettle 文件   plugin /steps 下面 新建文件夹  TemplateStep   然后将  标准模板  distrib文件夹下的  icon.png  和  plugin.xml文件 拷入  kettle新建的 TemplateStep文件夹下

TemplateStep  .jar包不要拷  因为有时候  TemplateStep中的代码变了 ,但是没有重新打包成TemplateStep .jar并且拷入kettle的 TemplateStep  文件夹下,那么插件的改变依然不会出现,因为kettle会依旧采用以前的jar

注意:如果没有steps文件夹,也创建一个空文件夹

重新启动sqoon  会发现在转换中出现了一个demon   下面有一个按钮  点击  就可以进行插件开发了

比如我们在 上面TemplateStep工程包下 的  dialog类中  找到  open()方法   加入一条 语句

System.out.println(“hello  kettle!”);

然后重启sqoon  ,再点击demon下的 按钮,在控制台会看见   hello  kettle!  (注意sqoon以debug方式启动)

==============================================================================================

kettle官网案例如下

初衷:
   1,通过kettle的发送邮件,将kettle的出错log发送到邮件中,但是在邮件中总是不能显示详细的出错log,所以想通过自己开发插件来完善这个功能。
   2,网上有一篇搭建kettle的文档,但是一方面是4.4版本的,而众所周知,4.4是和5.0以上的版本不兼容的。 
     3,网上有很多开发成型的kettle插件,但是一找下载目录,都不见了。这让我这个从来引用别人插件的人好无助,所以下决心自己开发一个插件。现在就把搭建的步骤记录下来,方便自己回忆。

预期效果:
     
准备工作:
  1,准备一下kettle必备的外部环境和开发IDE:

① jdk-7u67-windows-x64.exe(WIN64下java环境,下载地址:http://pan.baidu.com/s/1pJOGpWB ,配置环境的具体方法详见:http://jingyan.baidu.com/article/c85b7a6414f2ee003bac95d5.html 一定配置好JAVA_HOME和CLASSPATH来避免后期一些未知的错误。

②  eclipse-jee-luna-SR2-win32-x86_64.zip(WIN64下开发java工程的工具,下载地址:http://pan.baidu.com/s/1nt9Rn9R )。

    2,准备一下跟kettle具体相关的两个工具包和一个模板文件(kettle开发工具包,kettle源代码,kettle插件模板工具包)    
    
          ①下载kettle已经发布的kettle工具包。
下载地址是:http://sourceforge.net/projects/pentaho/files/Data%20Integration/5.1/这里我下载的是这个版本:pdi-ce-5.1.0.0-752.zip。这一步的主要目的一方面是为了使用工具包里面的ui包,来展现和现有kettle一样的界面。
解压之后的包机构是这样的:
 
        
          ② 下载kettle的源代码。
              下载地址是:http://source.pentaho.org/svnkettleroot/archive/Kettle/branches/
              我使用的是这个版本:5.0/ 。需要注意的是,这个下载地址是类似于远程的svn,虽然可以将路径粘贴到迅雷、快车等下载工具里面下载,但是我更推荐使用svn工具下载,这样的话,就可以很容易获取到最新更改过的version了。源代码的怎么下载可以参照我的这篇帖子:http://www.ukettle.org/thread-41-1-1.html
              
               (svn只能获取最高5.0的版本,但是https://github.com/pentaho/pentaho-kettle/releases 这个地址能获取到6.0的代码              
        下载之后的目录结构是这样的:  
                

③ 下载kettle的模板插件源代码(多谢QQ3144652101帮忙校验这里)。
              这个文件我从网上找了很多遍都没有找到,最后还是kettle群(227385701)里的@注意事项(QQ:345437592)分享上来的。这里我谢谢他的贡献了O(∩_∩)O~。

http://pan.baidu.com/s/1pJkKEKV 文件名是:TemplateStepPlugin.rar

需要准备的文件已经准备完毕,下一步进行开发环境的搭建。
     
搭建步骤:
     第一步,在eclipse中导入模板工程。具体操作在已经打开的eclipse中是:file-》import-》general-》Existing Porjects into Workspace-》next-》Select root directory(在这里写入你的TemplateStepPlugin.rar在本地的解压路径-》finished。
      

导入之后的项目目录是这样子的:
     
     第二步,在模板项目中加入开发工具包的ui包信息。

  \pdi-ce-5.1.0.0-752\data-integration\ui这个目录下的,将copy到项目根目录下,如下图:
    
       
     
  注意:此步骤可以省略
      第三步,在模板项目中加入开发工具包的第三方包信息和swt包。

        第三方包的源目录是:E:\Downloads\pdi-ce-5.1.0.0-752\data-integration\lib 需要copy所有的jar文件到E:\kettle_templatePlugin\TemplateStepPlugin\libext这个目录下。【注意:此步骤可以省略】
这里只拷贝文件,不copy文件夹。
      Swt包的源目录是:E:\Downloads\pdi-ce-5.1.0.0-752\data-integration\libswt 需要copy下win64这整个目录到E:\kettle_templatePlugin\TemplateStepPlugin\libswt 这个目录下,如下图:
       
    第四步,将所有的jar包引入到build path中。
         具体操作:eclipse-》选中src包右键-》Build path-》Configure Build Path-》Libraries-》Add External JARs-》打开E:\kettle_templatePlugin\TemplateStepPlugin\libext这个路径下所有jar包-》继续AddExternal JARS-》打开E:\kettle_templatePlugin\TemplateStepPlugin02\libswt\win64下这个jar包-》点击OK。
       第五步,删除模板文件中原有的class文件和jar包。更改build.xml中的编译信息。

删除Eclipse Work Space根目录\TemplateStepPlugin\classes\plugin\template目录下所有.class文件。

        删除EclipseWork Space根目录\TemplateStepPlugin\bin\plugin\template目录下所有的.class文件。
       删除 Eclipse Work Space根目录\TemplateStepPlugin02\lib目录下的.jar文件。

build.xml中的文件内容如下:

  1. <fileset dir="${libswt}/win32/" includes="*.jar"/>

复制代码

改为:

  1. <fileset dir="${libswt}/win64/" includes="*.jar"/>

复制代码

另外多加一句话,如下图:(多谢@长春-木头,QQ:313119992)
             
            

     第六步,安装配置ant编译环境。

Ant文件下载地址:http://pan.baidu.com/s/1jGgljb4

             Ant相关系统环境变量配置:
            新建系统变量:ANT_HOME
            变量值:E:\kettleDevInstallFile\KettleCore\apache-ant-1.9.2-bin\apache-ant-1.9.2(这个路径指向ant的zip包解压路径)

系统;%ANT_HOME%\bin;
            检验ant是否配好:cmd打开之后直接输入:ant

       

lib文件夹下出现TemplateStepPlugin.jar文件的。

     第七步:编译导入的模板工程。
cmd进入Eclipse work space根目录下的TemplateStepPlugin目录下,然后直接输入:ant即可。如下图:
成功的话显示信息如下:
          第八步:在kettle开发工具包中创建第三方插件项目目录并且引入jar文件。
        copy下模板工程下的resource文件到你做etl的kettle的D:\software\devSoft\data-integration\plugins\steps目录下。这里需要自己创建文件夹:D:\software\devSoft\data-integration\plugins\steps\templugins。如下图,
          

下面是目标文件夹的目录:
          

  我创建了templugins文件夹。TemplateStepPlugin.jar是上一步生成的文件直接copy过来的。icon.png和plugin.xml来自于

    第九步:大功告成,打开你的Spoon.bat。你会发现你的核心对象里面多了一个Demo目录。这个目录下的控件就是你新开发的模板插件了O(∩_∩)O~:
          

02_kettle插件开发的更多相关文章

  1. JavaScript学习笔记(四)——jQuery插件开发与发布

    jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...

  2. jira的插件开发流程实践

    怎么开头呢,由于自己比较懒,博客一直不怎么弄,以后克己一点,多传点自己遇到的问题和经历上来,供自己以后记忆,也供需要的小伙伴少走点弯路吧 最近公司项目需要竞标一个运维项目,甲方给予了既定的几种比较常用 ...

  3. Vue插件开发入门

    相对组件来说,Vue 的插件开发受到的关注要少一点.但是插件的功能是十分强大的,能够完成许多 Vue 框架本身不具备的功能. 大家一般习惯直接调用现成的插件,比如官方推荐的 vue-router.vu ...

  4. 【原创】记一次Project插件开发

    一.开发背景 最近在使用微软的Office Project 2010 进行项目管理,看到排的满满的计划任务,一个个地被执行完毕,还是很有成就感的.其实,不光是在工作中可以使用Project进行项目进度 ...

  5. JavaScript学习总结(四)——jQuery插件开发与发布

    jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...

  6. [Tool] Open Live Writer插件开发

    一 前言 Windows Live Writer(简称 WLW)开源之后变成 Open Live Writer(简称 OLW),原先 WLW 的插件在 OLW 下都不能用了,原因很简单,WLW 插件开 ...

  7. VS插件开发 - 登录身份验证

    [附加] 很多朋友问那个VS背景怎么弄的,我刚刚已经抽时间把制作步骤发出来了: 请参见<VS插件开发 - 个性化VS IDE编辑器,瞬间 高 大 上>. 最近一直在忙着一些事情,一直没有发 ...

  8. jQuery插件开发精品教程,让你的jQuery提升一个台阶

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  9. 开源遥感平台opticks插件开发指南

    Opticks是一款开源的遥感数据处理平台,与其同类开源软件OSSIM一样,支持种类丰富的数据文件格式,但其最大特点为设计精巧的插件开发模式,在设计技巧上,系统提供了良好的封装特性,即使插件开发者对框 ...

随机推荐

  1. springcloud报错集合

    springcloud启动报错Connection refused: connect 参考:https://blog.csdn.net/deemo__/article/details/78932401 ...

  2. javascript 5秒后关闭广告案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. bootstrap3 input 验证样式【转】

    feedback <form role="form"> <div class="form-group has-success has-feedback& ...

  4. Docker部署Consul集群

    服务介绍 Consul是一种分布式.高可用.支持水平扩展的服务注册与发现工具.包含的特性有:服务发现.健康检查.键值存储.多数据中心和服务管理页面等. 官方架构设计图: 图中包含两个Consul数据中 ...

  5. JS——页面倒计时跳转

    Js几秒后倒计时跳转 <html><head><title>出错啦~~~</title><link href="css/login1.c ...

  6. saltstack系列~第四篇

    简介 针对mysql的sls编写0 软件包推送部分  tool_rsync:     file.recurse:        - source: salt://files/mysql        ...

  7. 【Udacity并行计算课程笔记】- Lesson 2 The GPU Hardware and Parallel Communication Patterns

    本小节笔记大纲: 1.Communication patterns gather,scatter,stencil,transpose 2.GPU hardware & Programming ...

  8. 修改weblogic的端口

    两种方法可以修改,第一种方法是后台管理界面修改,第二种是配置文件修改,下面分别介绍: 1.后台修改 (1)进入weblogic登陆界面:(默认端口是7001) (2)登陆之后点击服务器----然后管理 ...

  9. Struts自定义拦截器&拦截器工作原理

    0.拦截器的调用原理: 拦截器是一个继承了序列化接口的普通接口.其工作原理是讲需要被拦截的对象作为参数传到intercept()方法内,在方法内部对此对象进行处理之后再执行原方法.intercept( ...

  10. jquery筛选数组之grep、each、inArray、map的用法及遍历son对象(转)

    grep [传入的参数为返回bool类型的函数] <script type='text/javascript' src="/jquery.js"></script ...