目录

一、下载源码

二、导入工程

修改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. Winsock开发网络通信程序的经典入门
  2. LuoGuP4721:【模板】分治 FFT
  3. 《岸上的波妞》观后感
  4. PyWebIO,让 Pandas 原地起飞的神器!
  5. 条款11 在operator=中处理“自我赋值”
  6. 计算机开机启动流程详解
  7. C语言的数组基础,C语言基础-数组
  8. Sql Server 分区
  9. 中国医药流通行业深度分析及十四五发展规划咨询建议报告2022-2028年版
  10. 晶体管介绍工作原理与历史
  11. 在discuz论坛增加背景音乐代码
  12. 【诗词】八声甘州·摘青梅荐酒 (羡青山有思,白鹤忘机。)
  13. 安防百科-单了解ONVIF 协议
  14. 安卓和IOS系统下字体样式的不同
  15. 【调剂】东北石油大学计算机科学与技术专业接收调剂
  16. Android第一行代码——第八章多媒体
  17. 深度解读DeepMind新作:史上最强GAN图像生成器—BigGAN
  18. 电梯惊魂”不再发生,物联卡解决电梯安全问题!
  19. java批量获取百度图片
  20. 计算机音乐春分秋分,春分和秋分的古诗词

热门文章

  1. Java删除服务器上的文件
  2. 老韩思考:一个卖豆腐的能转行IT吗? 你的卖点在哪里?
  3. tps协议和onvif协议_ONVIF协议解读
  4. mysql自定义函数for循环_mysql自定义函数
  5. 如何由 XRD 图谱确定所做的样品是准晶结构
  6. 华为云devops认证考试课堂笔记4
  7. ABAP问题记录--->物料编码和序列号的相爱相杀
  8. Apache Shiro框架简介
  9. AI人工智能毕业设计课题:车牌识别,车牌识别系统,车辆识别系统
  10. Go语言核心之美 2.2-浮点数