运行kettle-8.2源码
目录
一、下载源码
二、导入工程
修改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源码相关推荐
- 基于51单片机运行RTX51 Tiny操作系统源码模板之1.LED闪烁
什么是RTX51 Tiny: RTX51 Tiny是一种实时操作系统(RTOS),可以用它来建立多个任务(函数)同时执行的应用.能灵活的调度系统资源,像CPU和存储器,并且提供任务间的通信.RTX51 ...
- Android实现手部检测和手势识别(可实时运行,含Android源码)
Android实现手部检测和手势识别(可实时运行,含Android源码) 目录 Android实现手部检测和手势识别(可实时运行,含Android源码) 1. 前言 2. 手势识别的方法 (1)基于多 ...
- laravel $request 多维数组取值_Laravel 运行原理分析与源码分析,底层看这篇足矣
精选文章内容 一.运行原理概述 laravel的入口文件 index.php 1.引入自动加载 autoload.php 2.创建应用实例,并同时完成了: 基本绑定($this.容器类Containe ...
- 深入理解Spark 2.1 Core (五):Standalone模式运行的原理与源码分析
概述 前几篇博文都在介绍Spark的调度,这篇博文我们从更加宏观的调度看Spark,讲讲Spark的部署模式.Spark部署模式分以下几种: local 模式 local-cluster 模式 Sta ...
- 在运行hadoopdb\hive\hadoop源码时不能正确调用自定义core-site.xml等配置文件
一 前言 在hadoopdb\hive\hadoop源码中,会有很多的测试主程序 ,而这些测试主程序通常都要用到configuration,即 new JobConf(conf)时初始化configu ...
- android 源码编译 模拟器emulator启动,Android 模拟器运行编译后的源码
下载Android源码以及如何编译,这里就不多介绍了,照着www.android.com给的步骤进行,主要介绍一下使用make命令编译好了源码之后,如何使用模拟器来运行生成的镜像之类的文件. 方式应该 ...
- Kettle 9.0 源码编译
Kettle源码包编译指南 本次构建基于Kettle源码的9.0快照版本 环境准备 maven 3+ JDK 1.8 下载settings.xml文件,存放于.m2文件下 源码下载 源码下载地址:ht ...
- JSP 编译和运行过程与JSP源码简单分析
JSP 编译和运行过程与JSP转移源码简单分析 Web容器处理JSP文件请求的执行过程主要包括以下4个部分: 1. 客户端发出Request请求 2. JSP Container 将JSP转译成Ser ...
- 百度离线地图示例之十三:动态运行轨迹实现(附源码)
前言介绍: 主要是基于v3.0的API版本进行的离线,纯内网可操作,基本上实现了现有90%以上的功能点,能兼容jpg和png格式的瓦片图层,实现了原生和基于Vue两个版本(包含常用的55个示例),文末 ...
- 在Eclipse中编译运行Android4.3应用源码——Launcher2和Gallery2
转载,原博地址:http://blog.csdn.net/klpchan/article/details/11843295 ====================================== ...
最新文章
- python hashlib模块
- Matlab之for循环语句
- servlet的理解
- Cookies和Session(二)
- 为什么有时候NSData转换成NSString的时候返回nil
- Theano 中文文档 0.9 - 4. 要求
- 华为Mate X 5G再次秒售罄;全新折叠屏手机渲染图曝光:确实不一般!
- DBSCAN聚类算法初探(五)
- 火山引擎张鑫解读云原生2021:K8s 开先河、技能全栈、业务“无感”
- [转]IE首页被http://www.9798.net/篡改解决办法
- AutoCAD 2019 for mac汉化版
- 电信光猫 TEWA 500AG 破解 超密 2020-3-21
- 人工神经元再进一步,存储记忆已成现实
- 大数据工程师常用的大数据BI工具是什么?
- SAP ABAP 系列丛书推荐:PP 报工
- 医学院交换去计算机学院,皖南医学院学生2018年赴台湾元培医事科技大学参加交换生项目交流心得...
- 铁矿石怒砸跌停,棕榈油认沽最高45倍,钢厂利润大幅回升2022.6.20
- elasticsearch 性能优化
- 什么是https?http和https之间区别是什么?
- t420i升级固态硬盘提升_固态硬盘能提升游戏性能吗