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.hqwc.cn/news/278971.html

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

相关文章

ISSUE的基本概念

ISSUE:将符合一定条件的指令从发射队列&#xff08;IssueQueue)中选出来&#xff0c;并送到FU中执行的过程; ISSUE QUEUE也称之为reservation station, 其按照一定的规则&#xff0c;选择那些源操作数都已经准备好的指令&#xff0c;将其送到FU中执行&#xff0c;这个过程称为…

基于ssm旅游景点管理系统设计论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本旅游景点管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

拷贝的艺术:深拷贝与浅拷贝的区别与应用(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

基于ssm培训学校教学管理平台论文

摘 要 社会的进步&#xff0c;教育行业发展迅速&#xff0c;人们对教育越来越重视&#xff0c;在当今网络普及的情况下&#xff0c;教学管理模式也开始逐渐网络化&#xff0c;学校开始网络教学管理模式。 本文研究的培训学校教学管理平台基于SSM框架&#xff0c;采用Java技术和…

【unity小技巧】unity最完美的CharacterController 3d角色控制器,实现移动、跳跃、下蹲、奔跑、上下坡,复制粘贴即可

最终效果 文章目录 最终效果前言为什么使用CharacterControllerSimpleMove和Move如何选择&#xff1f;1. SimpleMove2. Move 配置CharacterController参数控制相机移动跳跃下蹲处理下坡抖动问题实现奔跑和不同移速控制完整代码完结 前言 其实一开始我是不打算写的&#xff0c;…

MyBatis执行Sql的流程分析

本文介绍MyBatis执行Sql的流程&#xff0c;关于在执行过程中缓存、动态SQl生成等细节不在本章中体现 还是以之前的查询作为列子&#xff1a; public class MyApp {public static void main(String[] args) {String resource "mybatis-config.xml";Reader reader;t…

【Spring Boot】快速入门

一、引言 1、什么是spring boot&#xff1f; Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff…

如何在Centos 7环境下安装MySQL并登录

目录 先获取MySQL官方yum源 然后正常使用yum命令下载mysql即可完成MySQL的下载 使用mysql客户端登录mysqld服务端 能够登录mysql客户端后&#xff0c;我们最后还需要做一点配置 先获取MySQL官方yum源&#xff08;包括对yum源的介绍&#xff09; 介绍一下yum源 yum源就是一…

超燃超欢乐!修仙喜剧动画《师兄啊师兄》第二季稳健开播

12月14日&#xff0c;备受瞩目的《师兄啊师兄》第二季终于稳健开播&#xff01;首播两集连放&#xff0c;同时第一季全13集限免&#xff0c;不仅便于新观众丝滑入坑&#xff0c;老观众也可以二刷重温&#xff0c;可以说是非常良心了&#xff01; 《师兄啊师兄》改编自人气网络小…

指针(笔记2)

一、const修饰指针 变量是可以修改的&#xff0c;如果把变量的地址交给一个指针变量&#xff0c;通过指针变量也可以修改这个变量。 我们希望给一个变量加上一些限制&#xff0c;不能被修改&#xff0c;那么这就由const起作用。 1.const修饰变量 (1)const如果放在&#xff…

基于Qt的登录页面设计

题目&#xff1a; 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和…

【数据结构和算法】判断子序列

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一&#xff1a;双指针 三、代码 3.1 方法一&#xff1a;双指针 3.1.1 Java易懂版&#xff1a;…