pentaho专题系列之kettle篇--kettle源码编译

最近看了一些kettle的文章,都是kettle7.0以前的,已经跟不上时代了。截止笔者写这篇文章的时候,github上面的已经是7.1.0.3了,而且是发行版的,最新的快照版本已经是8.0的了。基于此,有必要写一篇关于7.1之后的版本的kettle说明了。

特别说明,我用的项目的构建工具是maven,而不是ant了,如果想用ant的童鞋可以用一下maven的插件maven-antrun-plugins,还是比较好用的。

  好了,开始吧! 

第一步:下载源码。

源码地址在github上面:https://github.com/pentaho/pentaho-kettle.git,看到这里我用的是https的协议,如果要用ssh的协议的话,需要将你的公钥上传到github上面。不过不影响我们下载源码。

git的命令如下:git clone https://github.com/pentaho/pentaho-kettle.git。

完成之后,我们用一下maven的build命令呗(到项目的根目录下面):mvn clean install.  这下会报告一个父pom.xml找不到的错误,为什么会找不到呢?因为地址不对呗,我们把父项目里面的<parent></parent>这个节点给注释掉,就ok了。我猜想是他们团队对maven不是太了解,或者是运行的环境不同吧,但是在这里,明确告诉童鞋们,这个<parent></parent>确实有问题,不需要啦!

接着再来一次mvn clean install.又报错了,说是maven仓库找不到jar包,这里我们的解决方案如下:在父pom.xml中加入节点

  

<repositories>
<repository>
<id>pentaho-releases</id>
<url>http://repository.pentaho.org/artifactory/repo/</url>
</repository>
<repository>
<id>pentaho-nexus</id>
<url>https://nexus.pentaho.org/content/groups/omni/</url>
</repository>
</repositories>

这个节点指向了他们自己的jar包仓库,这两个都可以用,是一样的,建议都加上,以免遇到维护的时候,我们下不了jar包。

接着我们第三次mvn clean install!又来一个错误,是编译的版本过低,适应不了目前的代码需求,这个好解决啊。这个我们可以人为的提高一下编译的版本,在父pom.xml中加入以下代码:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>

这个节点是以插件的形式将编译的版本提高到jdk1.8.

下面再来编译呗,第四次mvn clean install。这下可以了,可以看到jar在一个一个下载了。可能时间比较慢,是个人的网速而定!一般要3个小时以上(这是最快的了,因为它会下载很多zip文件下来之后解压)。

编译好了之后,我们在assemblies/pdi-ce/target/下面有一个zip文件包,解压之后会得到一个分发包。双击Spoon.bat就可以了!

以上就是kettle源码编译的过程了。之所以没有截图给大家,是因为我已经成功了,不想再来一遍了。如果各位童鞋有什么问题,可以在下面留言,只要是我知道的,我会解答的!

还要强调一点的是,不要单独建立lib目录,脱离maven的环境,这样的项目说白了就是不严谨,没有规范,不适合我们新世纪的高科技码农人才!

时间: 2024-10-15 17:47:55

pentaho专题系列之kettle篇--kettle源码编译的相关文章

Kettle 5.0源码编译

下载源码请参考上一篇博文Kettle4.4.2源码分析 Kettle 5.0以前的库文件通过ant管理,5.0+的库文件通过ant+ivy管理.Eclipse一般都是安装ant插件,不安装ivy插件,在编译之前先在eclipse安装ivyde插件. 安装ivyde插件 启动Eclipse,Help -> Install New Software..,输入http://www.apache.org/dist/ant/ivyde/updatesite 全部安装,安装完毕重启Eclipse,在wind

高可用架构篇 MySQL源码编译安装(CentOS-6.6+MySQL-5.6)

具体操作参考视频教程:http://www.roncoo.com/course/view/85d6008fe77c4199b0cdd2885eaeee53 部署环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6.26.tar.gz 操作用户:root 系统IP:192.168.1.205 主机名:edu-mysql-01 配置:4核.4G内存 一.服务器配置: 1.配置网络 # vi /etc/sysconfig/network-sc

分布式架构高可用架构篇_06_MySQL源码编译安装(CentOS-6.7+MySQL-5.6)

部署环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL 版本:mysql-5.6.22.tar.gz 操作用户:root 系统 IP:192.168.1.205 主机名:edu-mysql-01 一.服务器配置: 1.配置网络 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="static" HWADDR="00:0c:29:

Feign 系列(04)Contract 源码解析

Feign 系列(04)Contract 源码解析 [TOC] Spring Cloud 系列目录(https://www.cnblogs.com/binarylei/p/11563952.html#feign) 在 上一篇 文章中我们大致分析了一下 Feign 的工作原理,那 Feign 到底是如何适配 Feign.JAX-RS 1/2 的 REST 声明式注解,将方法的参数解析为 Http 的请求行.请求头.请求体呢?这里就不得不提 Contract 这个接口. 1. Feign 参数编码整

Eureka 系列(02)客户端源码分析

Eureka 系列(02)客户端源码分析 [TOC] 在上一篇 Eureka 系列(01)最简使用姿态 中对 Eureka 的简单用法做了一个讲解,本节分析一下 EurekaClient 的实现 DiscoveryClient.本文的源码是基于 Eureka-1.9.8. 1)服务注册(发送注册请求到注册中心) 2)服务发现(本质就是获取调用服务名所对应的服务提供者实例信息,包括IP.port等) 3)服务续约(本质就是发送当前应用的心跳请求到注册中心) 4)服务下线(本质就是发送取消注册的HT

Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 概要  和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码:最后再通过实例来学会使用LinkedList.内容包括:第1部分 LinkedList介绍第2部分 LinkedList数

Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 概要 上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具体实现类进行讲解:首先,讲解List,而List中ArrayList又最为常用.因此,本章我们讲解ArrayList.先对ArrayLis

Java 集合系列 06 Stack详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 第1部分 Stack介绍 Stack简介 Stack是栈.它的特性是:先进后出(FILO, F

Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例

此页面为WP8"Surface Pro 3"应用的发布页面. "Surface Pro 3"是一款收集Surface Pro 3的玩机技巧的WP8程序,更好的帮助Surface用户理解并使用它. 此页面主要记录开发进度.APP发布等情况. -------------------相关进度--------------------- 目前进度:UI相关资源前期准备中,各相关开放平台的AppID申请中... Java 集合系列 09 HashMap详细介绍(源码解析)和使用