kettle7.1源码搭建.doc_第1页
kettle7.1源码搭建.doc_第2页
kettle7.1源码搭建.doc_第3页
kettle7.1源码搭建.doc_第4页
kettle7.1源码搭建.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Kettle7.1源码部署(开发)Kettle是一个开源项目,作为ETL工具,kettle提供了丰富的功能和简洁的图形化界面。作为免费开源的ETL工具,可以通过其桌面程序进行ETL步骤的开发并执行。kettle以插件形式来实现每个转换步骤的工作,发行版中已经提供了常用的转换清洗插件,如果还不能满足业务需求的话,则可以自己开发相应插件实现。但在使用原有插件或者自定义插件的过程中遇到问题时,如果不好定位原因,则可以通过源码环境来调试,可以更加方便和容易地解决问题。另外,通过源码的开发和学习,也能更加深入地理解kettle的原理。部署方式总共分为以下几步:一、 下载源码和kettle桌面工具并解压到指定目录(注意版本对应)二、 创建java项目(注意名称要和解压源码的文件夹名称相同)三、 创建core、engine、dbdialog、engine、lib(lib可以自定义名称)四、 复制源码五、 拷贝lib、libswt、launcher、simple-jndi六、 将lib下面的jar导入项目七、 添加libwt.jar包八、 创建plugins文件九、1. 下载源码并解压从 /pentaho/pentaho-kettle 地址中选择要下载的源码,首先在branch中选择 master,然后在Gags中选择要下载的源码,最有点击 clone or download 进行下载,这里我们选择download zip格式下载 如或者在云盘下载 2. 创建java 项目在eclipse 中创建一个空的java project,如注意kettle7的版本用JDK1.8,项目名称要和解压的源码文件夹名称相同,如3. 创建core、engine、dbdialog、ui在kettle-src根目录下,新建core、engine、dbdialog、ui四个文件夹(注意是文件夹,非package!),并将四个文件夹设置为source folder(在文件夹上右键点击Build PathUse as Source Folder或者在项目的Java Build Path里面选择Source选项卡,将四个文件夹添加进去)。如 以此创建dbdialog、engine、ui、plugins和lib文件夹,创建好的如4. 复制源码进入源码解压包,将pentaho-kettle--Rcoresrc下面的内容全部拷贝到项目的core文件夹下,同样,将engine、dbdialog、ui三个文件夹src下的内容也分别拷贝到项目对应的文件夹下。文件对应关系如下 复制core文件 复制dbdialog复制engine文件复制plugins复制UI文件(注意将ui/scr和assembly/package-res/ui两个文件夹下面的所有文件拷贝ui文件夹下面)5. 拷贝lib,libswt,launcher,simple-jndi进入kettle桌面工具的解压包,将lib文件夹(pentaho-kettle--Rlib)里面的jar全部拷贝到项目根目录下,并删除kettle-core--12.jar、kettle-dbdialog--12.jar、kettle-engine--12.jar三个jar包,再将kettle-engine--12libswt目录下,对应操作系统的文件夹下的swt.jar(本文选择kettle-engine--12libswtwin64swt.jar)拷贝到项目的libs下,最后将libs下所有的jar包添加到项目的build path中。拷贝发布版本下面的lib、libwt、launcher、simple_jndi四个文件夹拷贝到java项目的根目录下面。如其中lib下面的都是kettle的依赖包,选择打包好的。6. 将lib下面的jar 包导入项目将项目lib下面的jar包导入下面,注意要取消kettle-core.xxx.jar ,kettle-bddialog.xxx.jar,kettle-engine.xxx.jar。如选中lib下面的所有jar包,去掉kettle-core.xxx.jar ,kettle-bddialog.xxx.jar,kettle-engine.xxx.jar这三个,然后鼠标右键在弹出对话框中选择 Build Path 中的 Add to Build Path就可以添加,添加好的如。7. 添加libwt.jar包根据操作系统的版本和位数选择相应的libwt.jar包,8. 创建plugins文件夹在项目根目录下新建plugins文件夹,然后根据需要将工具包下的plugins里面的插件拷贝到plugins目录下(如果不在项目下建立plugins目录,也可以在系统的user_home/.kettle/下面创建plugins目录,比如在C:UsersThink.kettlee下面创建)。注意创建完plugins后先不要复制工具包plugins中的插件复制到源码目录下的plugins中,根据需要复制。至此环境搭建完毕,最后项目结构图如下 至此该导入的包就导完了,但是项目上还是有错误,这是因为源码中有类名冲突,可以会看到项目中的sourcefolder有这么一个特点:一个最后是src,一个最后是test。解决这个问题方法为:在把以test结尾的删除!切记勿删除。另外吐个槽,每删掉一个Eclipse的building真是太慢了,如果你等不及可以直接点击红方框结束它,等到删最后一个test结尾的源码包时再等待building完成。9. 运行程序至此,源码基本部署完毕,首先将源码加入编译目录,可以在将project clean一遍,再编译。定位到Spoon.java类:/kettle-src/ui/org/pentaho/di/ui/spoon/Spoon.java,运行即可看到kettle的桌面程序了。至于JVM的参数(-Xms1024m -Xmx2048m等),也可以在Run Configurations里面进行设置,具体大小根据自己系统决定,比如:10. 常见错误10.1 XsdValidator找到报错的类,如果是engine/src/org/pentaho/di/trans/steps/xsdvalidator下的XsdValidator.java报错的话,定位到报错的地方,将报错的代码改为SchemaFactory.newInstance(/2001/XMLSchema);报错原因是jdk版本,jdk7的版本取消了原代码中引用的那个String类型的常量。如果用jdk6或者7的话,在libs中需要删掉两个jar包,buildpath中也要remove掉着两个,因为在jdk6、7版本中已经整合了,再次导入有冲突,这两个jar文件分别是xml-apis.jar和xmlParserAPIs.jar,不用弄错了,因为libs中还有一个xml-apis-ext.jar。10.2 eclipse版本不支持JDK1.8的错误一、eclipse之后就运行打开它,然后找到Help - EclipseMarketplace打开应用商店二、搜索Java 8 Kepler,然后安装组建,安装完成后需要重启10.3 XMLParserFactoryProducer 报错编译的时候XMLParserFactoryProducer报错,报错的代码如下docBuilderFactory.setFeature( /xml/features/disallow-doctype-decl, true );XML文件的解析以及XML外部实体注入防护(/u013224189/article/details/49759845)可以将错误部分的代码改为如下docBuilderFactory.setFeature( /sax/features/external-general-entities, true );11. 总结一、下载源码和桌面工具包二、新建项目后,java环境设置为JDK1.8或者JRE1.8三、新建core、engine、dbdialog、ui四个文件夹后需要添加为source folder,并拷贝源码包下面相应文件夹下的src下的内容到各个文件夹中,还需要拷贝源码包下pentaho-kettle--Rassemblypackage-resui里面的内容到项目ui文件夹下四、添加工具包的lib下的jar以及li

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论