kettle插件调试比较麻烦,因为是两个不同工程的依赖,但是大家如果掌握方法,其实也很简单,回顾JAVA常用的调试手法,如Link Source、JAVA远程调试,如果大家了解maven,甚至可以直接依赖调试,下面我来作重讲讲前面两种调试手法。
准备工作:
1、通过eclipse上的svn插件下载kettle4.0源码,地址是:http://source.pentaho.org/svnkettleroot/Kettle/branches/4.0.0
下载完成之后,发现eclipse里面存在两个工程:TemplateStepPlugin,Kettle 4.0.0,若有不同,请参见文章ETL工具——kettle插件开发(基础篇)
2、下载我这里给你准备的测试转换文件test.ktr
一、Link Source调试:
1、在Kettle4.0工程下面,进入plugins->steps目录,发现里面有个DummyPlugin目录,其就是kettle官方提供的外部转换插件,细心地读者发现里面仅用三个文件DPL.png、dummy.jar、plugin.xml,其实它就是一个完整插件所需要的东西。
2、在与DummyPlugin同级目录里面,建立文件夹TemplateStep, 将TemplateStepPlugin工程下面的icon.png、plugin.xml文件拷贝至此,jar包就不用了
否则调试时会关联不上源码,O(∩_∩)O~ 想想为什么吧??
3、最重要的一步来了,大家右击工程Kettle 4.0.0,选择属性Properties, 然后在左手边选择Java Build Path, 然后在上面的选项卡里面选择Source,此时右边就有几个按钮,
点击Link Source按钮,设置好你的插件源码目录以及目录名字,见下图:
4、运行。 关联好之后,咱们找到kettle的入口运行类Spoon.java,大家可以通过快捷键ctrl+shift+R找出此类选择调试运行即可,进入kettle工作台,打开测试文件test.ktr,
查看是否能正常运行,此时大家就可以在插件类TemplateStep里面打断点调试了,其他情况不再多说了
二、kettle远程调试
远程调试的关键是首先你的在kettle启动配置里面设置远程调试参数,然后在eclipse里面设置远程调试监控的端口号,这样就ok了。
1、进入pdi-ce-4.0.0-stable.zip解压出来的目录(上一篇文章:ETL工具——kettle插件开发(基础篇)),编辑启动配置文件Spoon.bat,linux下当然是spoon.sh
在文件里面加入这么一句话:
set OPT=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8285
2、点击Spoon.bat,进入kettle工作台
3、打开eclipse,进入菜单Run——>Debug Configurations,选择左边的Remote Java Application,右键新建一个远程调试应用程序,设置如下图,
端口就是上面参数里面的端口8285,一切ok,选择选择下面的debug按钮。
4、在kettle工作台,运行刚才的测试转换文件 test.ktr,eclipse开始监听调试了,大家断点设置就可。