剛接到一個任務,就是要把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,不出意外,就運行成功了。。。。。界面如下:
額。。。然後代碼就是:
就喜歡不報錯的源碼。。。。。。。。。。。