kettle 源码分析- IDEA工程导入与DEBUG环境配置

发布于:2022-10-21 ⋅ 阅读:(826) ⋅ 点赞:(0)

        本工程构建的源码是按 kettle 8.2.0.7 源码导入的,试过 kettle 9 的源码因为编译出来有很多功能无法使用,所以选择 kettle 8 的版本源码。使用IDEA2022开发工具导入工程,JDK8。

源码下载路径:https://github.com/pentaho/pentaho-kettle/tree/8.2.0.7-C232

需要在maven 的配置文件中增加  pluginRepository 路径 https://repo.maven.apache.org/maven2/

maven 的 配置文件  

 

配置DEBUG源码有三种方法:

1. 网上已有的方法 

是按 maven 导入IDEA 开发环境以后 模块名  kettle-ui-swt 项目上选择所需的依赖包 ,然后启动类  org.pentaho.di.ui.spoon.Spoon 这种方式就算指定所需所有依赖包也不能完全启动整个工程,因为 kettle 工程用到了 osgi 框架,OSGIPluginRegistryExtension 插件扩展类不能启动成功。如图加入对应的依赖包:

 

2. 启动远程调用方式 

 远程 debug 程序,首先需要编译源码生成发布的包编译命令可以参考 README.md 中的给出的命令 : 

mvn clean install -DskipTests

编译生成  pdi-ce-8.2.0.7-C232.zip 拷贝到其他目录解压出来。然后修改文件 Spoon.bat 增加 远程调试命令:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6666 加在启动命令中。

同时服务端配置远程调试:

 而这种方式问题是输出端不能输出日志,不利于定位问题。

3. 通过 org.pentaho.commons.launcher.Launcher 启动 kettle 工程

首先需要编译源码生成发布的包编译命令可以参考 README.md 中的给出的命令: mvn clean install -DskipTests 

解压到特定的目录下。然后查看启动的 kettle 工程的命令:

start "Spoon" "D:\tools\java-8-291\bin\javaw.exe"  "-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m" 
 "-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2" 
 "-Djava.library.path=libswt\win64" 
 "-DKETTLE_HOME=" 
 "-DKETTLE_REPOSITORY=" 
 "-DKETTLE_USER=" 
 "-DKETTLE_PASSWORD=" 
 "-DKETTLE_PLUGIN_PACKAGES=" 
 "-DKETTLE_LOG_SIZE_LIMIT=" 
 "-DKETTLE_JNDI_ROOT=" 
 -jar launcher\launcher.jar -lib ..\libswt\win64

根据以上的命令可知 launcher.jar 启动整个 kettle 程序的 ,然后查找 launcher.jar 中的类 org.pentaho.commons.launcher.Launcher 引用  pentaho-application-launcher-8.2.0.7-719-sources.jar 将这个包解压出来,按 maven 导入 IDEA 的模块,导入后如下:

 然后配置这模块为 debug 模式启动类: 

Working directory :E:\workspace\home\pdi-ce-8.2.0.7-719\data-integration 就是压缩包解压出来的路径。

VM options  配置参数 : 

-Xms512m
-Xmx1024m
-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
-Djava.library.path=libswt\win64
-DKETTLE_HOME=
-DKETTLE_REPOSITORY=
-DKETTLE_USER=
-DKETTLE_PASSWORD=
-DKETTLE_PLUGIN_PACKAGES=
-DKETTLE_LOG_SIZE_LIMIT=
-DKETTLE_JNDI_ROOT=  

以这种方式启动程序,可以在任何地方打断点,并且 Consle 中输出日志。

需要配置文件,与工程配置,请留言。后面会分析启动过程与插件管理分析。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到