目录

一、下载源码

二、导入工程

修改pom.xml

三、运行

四、界面交换


一、下载源码

地址: https://github.com/pentaho/pentaho-kettle

我下载的是8.2这个源码,如下图所示,下载下来后应该是个zip文件,解压成目录即可。

二、导入工程

这里我使用的是idea导入kettle源码,eclipse我试了下,也大同小异。

idea的话,选择到如下目录即可。

工程导入后就如下图这样

此时工程还无法运行,有几个重要的模块需要去修改。

分别是kettle-core,kettle-engine,kettle-dbdialog和kettle-ui-swt。

修改pom.xml

首先打开kettle-core模块的pom.xml文件,

修改版本号 将8.2.0.0-snapshot改为8.2.0.0-342,

为什么要修改为342呢?

原因是无论在kettle官网的仓库中,如下是kettle官网仓库

https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/org/pentaho/pentaho-ce-jar-parent-pom/

还是在公司仓库中,都没有找到8.2.0.0-snapshot这个parent的文件,只有8.2.0.0-342,如果不修改的话,那么就无法下载pom中的jar包。

下图是kettle官网仓库的,只有8.2.0.0-342

将core模块的pom.xml修改如下

小插曲:

其实之前也在core模块建立了一般libs目录,把需要的包放在里面,然后修改了pom.xml文件,改为本地引用,如下图所示。

本地引用需要增加systemPath节点,但是编译的时候说scope不能是系统的,估计还需要加上

<scope>system</scope> 这个节点吧。
 <dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-script</artifactId><version>${batik.version}</version><systemPath>${project.basedir}/libs/batik-script-1.9.1.jar</systemPath><exclusions><exclusion><groupId>*</groupId><artifactId>*</artifactId></exclusion></exclusions></dependency>

修改完core后,需要在如下图所示界面,compile和install一下,

compile主要是为了看代码有没有报错,install是因为engine中有引用core的jar包。

同理,将kettle-engine,kettle-dbdialog和kettle-ui-swt模块都按照上述修改pom.xml。

三、运行

在kettle-ui-swt模块中找到org.pentaho.di.ui.spoon.Spoon#main,运行main方法,

此时会报错,报错如下,

这是因为缺少swt.jar这个jar包。

这个jar包存在pce-di-8.2.0.0-342这个工具中,下载地址如下,

https://sourceforge.net/projects/pentaho/files/Data%20Integration/

在kettle-ui--swt中新建libs目录,然后将这个swt.jar拷贝到此目录下。

注意此处我是win64的系统,所以也选择win64的包,否则无法运行

此时项目中还没有引用这个swt.jar包,在如下界面选择kettle-ui-swt,然后点击右侧加号,引入这个包。

引入后,调整swt.jar的顺序,放在最前面,如下图所示,

继续点击main,再次运行报错如下,

缺少spoon.xul文件,全局搜索后发现在assembiles模块下,

将上面的xul全拷贝到ui工程下即可,

再来一次,还报错,

百度一下,解释如下,

搜索了下发现是core中的pom.xml中引用了dom4j的包,给他加上jaxen的jar包就行,

再次运行,出界面了,

四、界面交换

配置了个表输入到表输出的交换,交换报错,后台打印如下,

界面上弹框显示缺少Mysql连接的包,所以工程中需要导入mysql的连接包。

在kettle-ui-swt中加入,

和引入swt.jar包一样,在如下图点击project structure

将mysql包引入进来,无需调整顺序,如图这样放最后就行,

执行交换,成功,说明源码编译和运行完成。

运行kettle-8.2源码相关推荐

  1. 基于51单片机运行RTX51 Tiny操作系统源码模板之1.LED闪烁

    什么是RTX51 Tiny: RTX51 Tiny是一种实时操作系统(RTOS),可以用它来建立多个任务(函数)同时执行的应用.能灵活的调度系统资源,像CPU和存储器,并且提供任务间的通信.RTX51 ...

  2. Android实现手部检测和手势识别(可实时运行,含Android源码)

    Android实现手部检测和手势识别(可实时运行,含Android源码) 目录 Android实现手部检测和手势识别(可实时运行,含Android源码) 1. 前言 2. 手势识别的方法 (1)基于多 ...

  3. laravel $request 多维数组取值_Laravel 运行原理分析与源码分析,底层看这篇足矣

    精选文章内容 一.运行原理概述 laravel的入口文件 index.php 1.引入自动加载 autoload.php 2.创建应用实例,并同时完成了: 基本绑定($this.容器类Containe ...

  4. 深入理解Spark 2.1 Core (五):Standalone模式运行的原理与源码分析

    概述 前几篇博文都在介绍Spark的调度,这篇博文我们从更加宏观的调度看Spark,讲讲Spark的部署模式.Spark部署模式分以下几种: local 模式 local-cluster 模式 Sta ...

  5. 在运行hadoopdb\hive\hadoop源码时不能正确调用自定义core-site.xml等配置文件

    一 前言 在hadoopdb\hive\hadoop源码中,会有很多的测试主程序 ,而这些测试主程序通常都要用到configuration,即 new JobConf(conf)时初始化configu ...

  6. android 源码编译 模拟器emulator启动,Android 模拟器运行编译后的源码

    下载Android源码以及如何编译,这里就不多介绍了,照着www.android.com给的步骤进行,主要介绍一下使用make命令编译好了源码之后,如何使用模拟器来运行生成的镜像之类的文件. 方式应该 ...

  7. Kettle 9.0 源码编译

    Kettle源码包编译指南 本次构建基于Kettle源码的9.0快照版本 环境准备 maven 3+ JDK 1.8 下载settings.xml文件,存放于.m2文件下 源码下载 源码下载地址:ht ...

  8. JSP 编译和运行过程与JSP源码简单分析

    JSP 编译和运行过程与JSP转移源码简单分析 Web容器处理JSP文件请求的执行过程主要包括以下4个部分: 1. 客户端发出Request请求 2. JSP Container 将JSP转译成Ser ...

  9. 百度离线地图示例之十三:动态运行轨迹实现(附源码)

    前言介绍: 主要是基于v3.0的API版本进行的离线,纯内网可操作,基本上实现了现有90%以上的功能点,能兼容jpg和png格式的瓦片图层,实现了原生和基于Vue两个版本(包含常用的55个示例),文末 ...

  10. 在Eclipse中编译运行Android4.3应用源码——Launcher2和Gallery2

    转载,原博地址:http://blog.csdn.net/klpchan/article/details/11843295 ====================================== ...

最新文章

  1. python hashlib模块
  2. Matlab之for循环语句
  3. servlet的理解
  4. Cookies和Session(二)
  5. 为什么有时候NSData转换成NSString的时候返回nil
  6. Theano 中文文档 0.9 - 4. 要求
  7. 华为Mate X 5G再次秒售罄;全新折叠屏手机渲染图曝光:确实不一般!
  8. DBSCAN聚类算法初探(五)
  9. 火山引擎张鑫解读云原生2021:K8s 开先河、技能全栈、业务“无感”
  10. [转]IE首页被http://www.9798.net/篡改解决办法
  11. AutoCAD 2019 for mac汉化版
  12. 电信光猫 TEWA 500AG 破解 超密 2020-3-21
  13. 人工神经元再进一步,存储记忆已成现实
  14. 大数据工程师常用的大数据BI工具是什么?
  15. SAP ABAP 系列丛书推荐:PP 报工
  16. 医学院交换去计算机学院,皖南医学院学生2018年赴台湾元培医事科技大学参加交换生项目交流心得...
  17. 铁矿石怒砸跌停,棕榈油认沽最高45倍,钢厂利润大幅回升2022.6.20
  18. elasticsearch 性能优化
  19. 什么是https?http和https之间区别是什么?
  20. t420i升级固态硬盘提升_固态硬盘能提升游戏性能吗

热门文章

  1. 力扣 面试题 08.04. 幂集
  2. oppo手机使用应用沙盒动态修改imei信息
  3. 测试驱动开发心得体会
  4. 最大同性恋交友网站 github 被微软收购,我不服!
  5. 异速联显示连接服务器失败,异速联客户端登陆时正在连接服务器
  6. windows实用工具集
  7. xshell5字体大小调整
  8. 一元云购指定中奖版源码(开源+PC+移动端)
  9. 一起用Python做个车牌自动识别系统,好玩又实用!
  10. studioOne安装教程与简单使用(图文)