运行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包引入进来,无需调整顺序,如图这样放最后就行,

 

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值