PDI/Kettle-9.2.0.0-R(对应jdk1.8)源码编译问题记录及源码结构简介

目录

  • 📚第一章 前言
    • 📗背景
    • 📗目的
    • 📗总体方向
  • 📚第二章 代码结构初识
    • 基本结构
    • 📗代码模块详情
  • ⁉️问题记录
    • ❓问题一:代码分支哪些是发布版本
      • ❗答:后缀-R的版本
    • ❓问题二:`503 Service Temporarily Unavailable and 'parent.relativePath' points at wrong local POM`
      • ❗解决方式:更换根目录下pom.xml中的仓库地址
    • ❓问题三:`karaf-maven-plugin:4.2.6-R2 or one of its dependencies could not be resolved`
      • ❗解决方式:阿里云仓库地址已变更,重新配置settings.xml中仓库地址
    • ❓问题四:`org.pentaho:pentaho-ce-jar-parent-pom:pom:9.2.0.0-290 was not found`
      • ❗版本最高就只到8.1
    • ❗setting.xml(直接按照这种方式配置,上面问题二三四应该都解决了)
    • ❓问题五:1.7G,为什么那么大?版本之间差距这么大嘛.......
    • ❗ 对比pdi-ce-9.2.0.0-290和pdi-ce-9.4.0.0-343

📚第一章 前言

📗背景

昨天下载的Kettle源码,需要JDK11,今天按照官方发布的9.2版本,重新下载源码,地址为9.2.0.0-R/290,对应JDK1.8,至于源码下载及编译可参照PDI/Kettle-9.4.0.0-343源码下载及编译,步骤都是一样的。如果确实使用到JDK11,可以选择9.2之后的版本
在这里插入图片描述
在这里插入图片描述

📗目的

研究代码,尝试二开(PS:下载完代码,编译了一下,结果全是错,详见问题记录

📗总体方向

kettle任务编排提取出来做成web界面(PS:编译项目干了一天

📚第二章 代码结构初识

基本结构

在这里插入图片描述
在这里插入图片描述

📗代码模块详情

  • integration测试代码模块,据说很多已过时,用处不大。
    在这里插入图片描述
  • kettle-core:PDI的核心库,包含了所有基本的数据处理功能。
    • 该模块提供了数据源连接、数据流设计、转换步骤定义、元数据管理等功能。
    • 该模块不依赖于任何特定的UI框架或数据库驱动程序,因此可以被其他应用程序以编程方式使用。
  • kettle-dbdialog:对话框
    • 该模块包含了一个用于与用户交互的对话框,用于配置数据库连接参数。
    • 该模块允许用户输入数据库URL、用户名、密码和其他必要的信息。
  • kettle-engine:核心引擎,执行作业
    • 该模块负责执行作业和转换。
    • 该模块包含了所有的核心逻辑,包括错误处理、日志记录、插件管理和线程调度等。
  • kettle-ui-swt:图形用户界面
    • 该模块为Kettle提供了一套基于SWTStandard Widget Toolkit)的图形用户界面。
    • 用户可以通过这个GUI来创建、编辑和运行作业和转换。
  • pdi-assemblies:
    • 该模块包含了PDI的所有组件的组装和打包脚本。
    • 该模块通过这些脚本,可以将各个模块组合成一个完整的可部署的应用程序。
  • pdi-engine-ext:扩展
    • 该模块包含了对引擎的扩展。
    • 这些扩展可能包括新的数据源连接器、新的步骤类型或者自定义的行为。
  • pdi-plugins:插件
    • 该模块包含了各种插件,它们扩展了PDI的功能。
    • 插件可以是预定义的步骤、输入/输出插件、自定义函数库等。

⁉️问题记录

❓问题一:代码分支哪些是发布版本

❗答:后缀-R的版本

在软件开发中,-R-RC通常代表不同的版本状态:

  • -R:这个后缀可能表示“Release”,即正式发布的版本。这通常是软件经过多次测试和优化后的稳定版本,可供广大用户下载和使用。
  • -RC:这个后缀通常表示“Release Candidate”,即候选发布版本。这是软件发布周期中的一个阶段,在这个阶段,软件已经基本完成开发,并且通过了内部的测试,但还没有正式发布。RC版本通常用来收集最后阶段的反馈和错误报告,以便在最终发布之前进行修复。

本文的版本9.2.0.0-290对应的就是9.2.0.0-R
在这里插入图片描述

❓问题二:503 Service Temporarily Unavailable and 'parent.relativePath' points at wrong local POM

[INFO] Scanning for projects...
[INFO] Downloading from pentaho-public: http://nexus.pentaho.org/content/groups/omni/org/pentaho/pentaho-ce-jar-parent-pom/9.2.0.0-290/pentaho-ce-jar-parent-pom-9.2.0.0-290.pom
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for org.pentaho.di:pdi:9.2.0.0-290: Could not transfer artifact org.pentaho:pentaho-ce-jar-parent-pom:pom:9.2.0.0-290 from/to pentaho-public (http://nexus.pentaho.org/content/groups/omni/): transfer failed for http://nexus.pentaho.org/content/groups/omni/org/pentaho/pentaho-ce-jar-parent-pom/9.2.0.0-290/pentaho-ce-jar-parent-pom-9.2.0.0-290.pom, status: 503 Service Temporarily Unavailable and 'parent.relativePath' points at wrong local POM @ line 16, column 11@ 
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project org.pentaho.di:pdi:9.2.0.0-290 (D:\code\opensource\ETL\pentaho-kettle-9.2.0.0-R\pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM for org.pentaho.di:pdi:9.2.0.0-290: Could not transfer artifact org.pentaho:pentaho-ce-jar-parent-pom:pom:9.2.0.0-290 from/to pentaho-public (http://nexus.pentaho.org/content/groups/omni/): transfer failed for http://nexus.pentaho.org/content/groups/omni/org/pentaho/pentaho-ce-jar-parent-pom/9.2.0.0-290/pentaho-ce-jar-parent-pom-9.2.0.0-290.pom, status: 503 Service Temporarily Unavailable and 'parent.relativePath' points at wrong local POM @ line 16, column 11 -> [Help 2]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

在这里插入图片描述
在这里插入图片描述

❗解决方式:更换根目录下pom.xml中的仓库地址

  <!-- <repositories><repository><id>pentaho-public</id><name>Pentaho Public</name><url>http://nexus.pentaho.org/content/groups/omni/</url><releases><enabled>true</enabled><updatePolicy>daily</updatePolicy></releases><snapshots><enabled>true</enabled><updatePolicy>interval:15</updatePolicy></snapshots></repository></repositories> --><repositories><repository><id>pentaho-public</id><name>Pentaho Public</name><url>https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/</url><releases><enabled>true</enabled><updatePolicy>daily</updatePolicy></releases><snapshots><enabled>true</enabled><updatePolicy>interval:15</updatePolicy></snapshots></repository></repositories>

在这里插入图片描述
更换完地址,进行update maven
在这里插入图片描述

❓问题三:karaf-maven-plugin:4.2.6-R2 or one of its dependencies could not be resolved

[INFO] Scanning for projects...
[WARNING] The POM for org.hitachivantara.karaf.tooling:karaf-maven-plugin:jar:4.2.6-R2 is missing, no dependency information available
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] Unresolveable build extension: Plugin org.hitachivantara.karaf.tooling:karaf-maven-plugin:4.2.6-R2 or one of its dependencies could not be resolved: org.hitachivantara.karaf.tooling:karaf-maven-plugin:jar:4.2.6-R2 was not found in http://maven.aliyun.com/nexus/content/groups/public/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of alimaven has elapsed or updates are forced @ 
[ERROR] Unknown packaging: feature @ line 9, column 14@ 
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project org.pentaho.di.plugins:pentaho-streaming-feature:9.2.0.0-290 (D:\code\opensource\ETL\pentaho-kettle-9.2.0.0-R\plugins\streaming\assemblies\feature\pom.xml) has 2 errors
[ERROR]     Unresolveable build extension: Plugin org.hitachivantara.karaf.tooling:karaf-maven-plugin:4.2.6-R2 or one of its dependencies could not be resolved: org.hitachivantara.karaf.tooling:karaf-maven-plugin:jar:4.2.6-R2 was not found in http://maven.aliyun.com/nexus/content/groups/public/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of alimaven has elapsed or updates are forced -> [Help 2]
[ERROR]     Unknown packaging: feature @ line 9, column 14
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/PluginManagerException

在这里插入图片描述

❗解决方式:阿里云仓库地址已变更,重新配置settings.xml中仓库地址

详情:https://developer.aliyun.com/mvn/guide
在这里插入图片描述
在这里插入图片描述

    <!-- <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>        </mirror> --><mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url></mirror>

❓问题四:org.pentaho:pentaho-ce-jar-parent-pom:pom:9.2.0.0-290 was not found

[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for org.pentaho.di:pdi:9.2.0.0-290: org.pentaho:pentaho-ce-jar-parent-pom:pom:9.2.0.0-290 was not found in https://maven.aliyun.com/repository/public during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of aliyunmaven has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 16, column 11@ 
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project org.pentaho.di:pdi:9.2.0.0-290 (D:\code\opensource\ETL\pentaho-kettle-9.2.0.0-R\pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM for org.pentaho.di:pdi:9.2.0.0-290: org.pentaho:pentaho-ce-jar-parent-pom:pom:9.2.0.0-290 was not found in https://maven.aliyun.com/repository/public during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of aliyunmaven has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 16, column 11 -> [Help 2]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

❗版本最高就只到8.1

在这里插入图片描述
在这里插入图片描述

❗setting.xml(直接按照这种方式配置,上面问题二三四应该都解决了)

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd"><localRepository>D:\soft\apache-maven-3.8.5\apache-maven-3.8.5\repository</localRepository><pluginGroups></pluginGroups><proxies></proxies><servers></servers><mirrors><mirror><id>pentaho-public</id><name>Pentaho Public Mirror</name><url>https://repo.orl.eng.hitachivantara.com/artifactory/pnt-mvn/</url><mirrorOf>*</mirrorOf></mirror><mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url></mirror></mirrors><profiles></profiles></settings>

在这里插入图片描述

❓问题五:1.7G,为什么那么大?版本之间差距这么大嘛…

在这里插入图片描述
下面是官网下载下来的,和9.4相差也太大了
在这里插入图片描述

❗ 对比pdi-ce-9.2.0.0-290和pdi-ce-9.4.0.0-343

在这里插入图片描述
9.2多出来的两个目录文件,占了1G
在这里插入图片描述
9.2的插件目录又多出160M,但是个数并不多
在这里插入图片描述
在这里插入图片描述
9.2的中的额外文件作用:文件是为KARaf容器准备的,用于扩展和配置PDI服务器的功能(嗯,不懂!)
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Milesight VPN server.js 任意文件读取漏洞(CVE-2023-23907)

0x01 产品简介 MilesightVPN 是一款软件&#xff0c;一个 Milesight 产品的 VPN 通道设置过程更加完善&#xff0c;并可通过网络服务器界面连接状态。 0x02 漏洞概述 MilesightVPN server.js接口处存在文件读取漏洞&#xff0c;攻击者可通过该漏洞读取系统重要文件&#xff…

dockerfite创建镜像---INMP+wordpress

目录 搭建dockerfile---lnmp 创建nginx镜像 运行 创建数据库镜像 运行 ​编辑 创建php镜像 运行 搭建dockerfile---lnmp 在192.168.10.201 服务IP地址nginx 172.111.0.10 dockernginxmysql172.111.0.20dockermysqlphp172.111.0.30dockerphp 创建nginx镜像 路径 vim /…

解锁知识的新大门:自建知识付费小程序的技术指南

在数字化时代&#xff0c;知识付费小程序的崛起为创作者和学习者提供了全新的学习和分享方式。本文将以“知识付费小程序源码”为关键词&#xff0c;从技术角度出发&#xff0c;为你展示如何搭建一个独具特色的知识付费平台。 步骤1&#xff1a;选择适用的知识付费小程序源码…

Android蓝牙协议栈fluoride(七) - 设备管理(bt stack)

前面几篇文章介绍了设备管理对上层的接口和bt profile层的实现&#xff0c;其中涉及到蓝牙开关(初始化)、设备扫描、服务发现、安全管理、功耗管理等等模块&#xff0c;本文将挑选几个模块介绍bt stack层的实现&#xff0c;其他模块(如安全管理)将在后续专门讲述。 使能蓝牙 …

【Java】构建表达式二叉树和表达式二叉树求值

问题背景 1. 实现一个简单的计算器。通过键盘输入一个包含圆括号、加减乘除等符号组成的算术表达式字符串&#xff0c;输出该算术表达式的值。要求&#xff1a; &#xff08;1&#xff09;系统至少能实现加、减、乘、除等运算&#xff1b; &#xff08;2&#xff09;利用二叉…

Windows更改远程桌面端口并添加防火墙入站规则

1.运行 快捷键winR组合键&#xff0c;win就是键盘上的windows系统图标键。 2.打开注册表 Regedit&#xff0c;在对话框中输入regedit命令&#xff0c;然后回车 3.打开注册表&#xff0c;输入命令后&#xff0c;会打开系统的注册表&#xff0c;左边是目录栏&#xff0c;右边是…

windows安装sqlserver2008后连接失败问题

刚安装好的sqlserver在安装服务器上&#xff0c;直接使用Windows身份认证登录就报错 未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server已配置为允许远程连接。&#xff08;provider&#xff1a;命名管道提供程序&#xff0c;error&#xff1a;40 -无法打开到SQLS…

GroupMixFormer:基于Group-Mix注意力的视觉Transformer

文章目录 摘要1、简介2、相关工作2.1、视觉转换器2.2、全面的自注意力建模 3、组混合注意力和GroupMixFormer3.1. 动机&#xff1a;从个体到群体3.2. GMA: 混合组以获得更好的注意力3.3. 架构配置 4、实验4.1、实现细节4.2. 与最先进模型的比较4.3. 消融实验 5、结论 摘要 htt…

使用opencv的Sobel算子实现图像边缘检测

1 边缘检测介绍 图像边缘检测技术是图像处理和计算机视觉等领域最基本的问题&#xff0c;也是经典的技术难题之一。如何快速、精确地提取图像边缘信息&#xff0c;一直是国内外的研究热点&#xff0c;同时边缘的检测也是图像处理中的一个难题。早期的经典算法包括边缘算子方法…

【教程】源代码加密、防泄密软件

​ 什么是代码混淆&#xff1f; 代码混淆 是一种将应用程序二进制文件转换为功能上等价&#xff0c;但人类难于阅读和理解的行为。在编译 Dart 代码时&#xff0c;混淆会隐藏函数和类的名称&#xff0c;并用其他符号替代每个符号&#xff0c;从而使攻击者难以进行逆向工程。 …

VBA_MF系列技术资料1-242

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧&#xff0c;我参考大量的资料&#xff0c;并结合自己的经验总结了这份MF系列VBA技术综合资料&#xff0c;而且开放源码&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-04属于定…

C#科学绘图之scottPlot绘制多个图像

文章目录 示例移除图像图例信号图 scott系列&#xff1a;绘图初步 示例 从名字就能看出&#xff0c;ScottPlot的绘图函数AddScatter的作用是为图窗添加数据点&#xff0c;换言之&#xff0c;每调用一次AddScatter&#xff0c;就可以在图窗中添加一组图像。下面添加两个按钮&a…

CS5565设计资料|CS5565规格书|typec转HDMI 8k60Hz方案

CS556x是一款高性能的Type-C/DisplayPort1.4到HDMI2.1协议转换器&#xff0c;可通过Type-C/ DisplayPort链路接收视频和音频流&#xff0c;并转换为支持TMDS或FRL输出信令的HDMI。DP接收器在4个通道上支持高达8.1Gbps的链路速率。HDMI输出端口可用作TMDS或FRL发射器。FRL发射器…

天猫数据分析(天猫数据查询平台):11月天猫啤酒市场销售数据分析报告

在酒类市场中&#xff0c;被视作“气氛担当”的啤酒&#xff0c;是派对聚会或者自饮场景中的常客&#xff0c;消费人群广泛&#xff0c;如今&#xff0c;啤酒市场已进入存量时代&#xff0c;市场中啤酒的销售也在稳步增长。 鲸参谋数据显示&#xff0c;今年11月份&#xff0c;天…

技术分享 | app测试中常用的Android模拟器

Emulator Emualor 是 Android Studio 自带的模拟器&#xff0c;是官方提供的工具&#xff0c;Android 开发最常使用的就是这一款。 它功能非常齐全&#xff0c;电话本、通话等功能都可正常使用。用户可以使用键盘输入&#xff0c;鼠标点击模拟器按键输入&#xff0c;甚至还可以…

十四、YARN核心架构

1、目标 &#xff08;1&#xff09;掌握YARN的运行角色和角色之间的关系 &#xff08;2&#xff09;理解使用容器做资源分配和隔离 2、核心架构 &#xff08;1&#xff09;和HDFS架构的对比 HDFS架构&#xff1a; YARN架构&#xff1a;&#xff08;主从模式&#xff09; &…

医学检验系统LIS源码,C# +.Net+Oracle

LIS是HIS的一个组成部分&#xff0c;通过与HIS的无缝连接可以共享HIS中的信息资源&#xff0c;使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。  体系结构&#xff1a;Client/Server架构 客户端&#xff1a;WPFWindows Forms 服务端&#xff1a;C…

escapeshellarg参数绕过和注入的问题

escapeshellcmd escapeshellcmd(string $command): string command--要转义的命令。 escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec() 或 system() 函数&#xff0c;或者 执行操作符 之前进行转义。 …

pytest + yaml 框架 -60.git+jenkins+allure+钉钉通知反馈

前言 当我们自动化用例写完后&#xff0c;接下来就是如何运行用例&#xff0c;生成报告以及反馈通知了。 如果你们公司已经有jenkins了&#xff0c;那么直接集成到jenkins上构建你的自动化任务是非常方便的。 用例上传git仓库 第一步&#xff0c;将写好的自动化用例&#xf…

保障线程安全性:构建可靠的多线程应用

目录 引言 为什么线程安全性如此重要&#xff1f; 1. 竞态条件&#xff08;Race Conditions&#xff09; 2. 死锁&#xff08;Deadlocks&#xff09; 3. 数据竞争&#xff08;Data Races&#xff09; 4. 内存可见性&#xff08;Memory Visibility&#xff09; 面临的挑战…