最近看了一些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的环境,这样的项目说白了就是不严谨,没有规范,不适合我们新世纪的高科技码农人才!

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

  1. Kettle 5.0源码编译

    下载源码请参考上一篇博文Kettle4.4.2源码分析 Kettle 5.0以前的库文件通过ant管理,5.0+的库文件通过ant+ivy管理.Eclipse一般都是安装ant插件,不安装ivy插件, ...

  2. 第一篇: openJDK源码编译安装--mac版本

    1.为什么要编译JDK 想要一探JDK内部的实现机制,最便捷的路径之一就是自己编译一套JDK,通过阅读和跟踪调试JDK源码去了解Java技术体系的原理,虽然门槛高一点,但肯定比阅读各种书籍,文章,博客 ...

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

    redhat: 下载:http://dev.mysql.com/downloads/mysql/ 选择5.6 source包 解压 cmake . -DCMAKE_INSTALL_PREFIX=/us ...

  4. Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  5. 【Orleans开胃菜系列2】连接Connect源码简易分析

    [Orleans开胃菜系列2]连接Connect源码简易分析 /** * prism.js Github theme based on GitHub's theme. * @author Sam Cl ...

  6. Eureka 系列(04)客户端源码分析

    Eureka 系列(04)客户端源码分析 [TOC] 0. Spring Cloud 系列目录 - Eureka 篇 在上一篇 Eureka 系列(01)最简使用姿态 中对 Eureka 的简单用法做 ...

  7. Feign 系列(04)Contract 源码解析

    Feign 系列(04)Contract 源码解析 [TOC] Spring Cloud 系列目录(https://www.cnblogs.com/binarylei/p/11563952.html# ...

  8. Centos 7源码编译安装 php7.1 之生产篇

    Centos 7源码编译安装 php7.1 之生产篇 Published 2017年4月30日 by Node Cloud 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具 ...

  9. Java中常用的七个阻塞队列第二篇DelayQueue源码介绍

    Java中常用的七个阻塞队列第二篇DelayQueue源码介绍 通过前面两篇文章,我们对队列有了了解及已经认识了常用阻塞队列中的三个了.本篇我们继续介绍剩下的几个队列. 本文主要内容:通过源码学习De ...

随机推荐

  1. PHP容器--Pimple运行流程浅析

    需要具备的知识点 闭包 闭包和匿名函数在PHP5.3.0中引入的. 闭包是指:创建时封装周围状态的函数.即使闭包所处的环境不存在了,闭包中封装的状态依然存在. 理论上,闭包和匿名函数是不同的概念.但是 ...

  2. OJ2237第k小数题解

    题目描述: 有n个数,请你找出第k小的数. 输入描述: 第一行有2个正整数n,k(n,k<=10^7)第二行有n个非负数ai(ai<=10^5) 输出描述: 输出第k小的数. 输入样例: ...

  3. Java 逆变与协变的名词说明

    最近在研究Thinking in Java的时候,感觉逆变与协变有点绕,特意整理一下,方便后人.我参考于Java中的逆变与协变,但是该作者整理的稍微有点过于概念化,我在这里简单的说一下 我对于协变于逆 ...

  4. Selenium的简单安装和使用

    Selenium的安装 pip install selenium Selenium模块需要调用浏览器,需要配置selenium的浏览器驱动 Firefox(火狐) 下载对应版本的geckdriver. ...

  5. 关于非阻塞connnect的看法

    关于非阻塞connnect的总结 在面试题中,看到有关于阻塞connect和非阻塞connect的区别: 显然,我们可以从阻塞和非阻塞的意思来回答,既然是阻塞,那么执行connect的操作会一直阻塞到 ...

  6. 微信小程序的登陆流程详解

    由于小程序的登陆和登陆状态维护流程比较复杂,需要客户端和服务器的数次交互以及服务器端的相应处理,很多同学都觉得比较麻烦,所以特别写下这篇博客为大家梳理一下微信的登陆流程,同时加深对微信小程序与登陆状态 ...

  7. Akka(13): 分布式运算:Cluster-Sharding-运算的集群分片

    通过上篇关于Cluster-Singleton的介绍,我们了解了Akka为分布式程序提供的编程支持:基于消息驱动的运算模式特别适合分布式程序编程,我们不需要特别的努力,只需要按照普通的Actor编程方 ...

  8. CentOS 6.5 下安装 Redis 2.8.7(转载)

    wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable make ...

  9. 集合的定义,操作及运算 (Python)

    集合的定义: 集合和列表([  ]) 与  字典 ( {    }) 不同,没有特别的特别的语法格式.可以使用set () 创建. 集合同字典一样是无序的.也是不具有重复性的.因此可以把列表变成集合进 ...

  10. Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动

    Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动 >>>>>>>>>>>>>> ...