刚接到一个任务,就是要把kettle在本地跑通,然后再此基础上修改一下源码,以实现公司的需求。。。。
不说了,直接开搞。。。。
第一步需要下载源码:
源码地址:https://github.com/pentaho/pentaho-kettle/tree/8.2.0.0
之前有大佬已经跑通了,不过那是kettle6的,好像是没有用maven管理,想要的话地址在这:
https://blog.csdn.net/zutsoft/article/details/52998148
这个链接有三个资源的下载,不过版本很低,还不如自己本地跑一边。
kettle8的代码是maven管理,下载好源码之后等待jar包下载,期间会有几百兆的,不过慢慢等待下载吧。。。。
下载好之后找到spoon.java文件,直接运行这个带有main方法的就行了,如果在意料之中会出现如一个错误:
1.缺少swt-gtk-....dll 之类的报错,我现在的已经调试通过,不想再重现这个错误了。
这个就是因为jar的缺失造成的,因为整个kettle默认的是org.eclipse.swt都是linux系统的,所以要把改成如下图的模式:
那么多的pom文件,改哪一个呢?
导入工程你会发现代码很长,在eclipse中分Package Explorer 和Project Explorer 等,。。。。。好吧这些工具使用自己体会吧。 修改Project Explorer下的:
这两个的jar改成org.eclipse.swt.win32.win32.x86_64 就行了。
并且要确保自己的项目中jar包导入成功了。。。如下图:
之后你运行spoon.java 不出意外还是报错的。。。。。。报错信息:
2.错误信息应该是:Error initializing .... 以及 找不到什么[ui\spoon.xul] 还有什么shell之类的错误。。。。我就不再重现错误了。
这个解决的方案就是:
首先要下载客户端的源码(姑且理解为客户端源码吧):下载地址:https://sourceforge.net/projects/pentaho/files/
找到client-tools下载。解压缩之后是这样的。。。
然后。。很重要额。。。
把data-integration\ui下的内容复制并粘贴到项目中的kettle-ui-swt下的src/main/resources/ui下。但是images中的内容别动。
之后update下项目,再运行spoon.java,不出意外,就运行成功了。。。。。界面如下:
额。。。然后代码就是:
就喜欢不报错的源码。。。。。。。。。。。