最近看了一些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. 【Android Developers Training】 47. 序言:拍摄照片

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  2. 如何使用apktool反编译,查看androidmanifest的内容

    1.下载apktool http://pan.baidu.com/s/1o7Jy090 2.使用方法

  3. Ionic 常用组件解析

    Ionic 常用组件解析 $ionicModal(弹出窗口): //创建一个窗口 //此处注意目录的起始位置为app $ionicModal.fromTemplateUrl('app/security ...

  4. JDBC01 利用JDBC连接数据库【不使用数据库连接池】

    目录: 1 什么是JDBC 2 JDBC主要接口 3 JDBC编程步骤[学渣版本] 5 JDBC编程步骤[学神版本] 6 JDBC编程步骤[学霸版本] 1 什么是JDBC JDBC是JAVA提供的一套 ...

  5. mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程)

    写在最前 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生M ...

  6. JQuery中实现Ajax

    简单小案例: $("input").click(function() { $.get("test.txt",function(data){ $("h1 ...

  7. Mac之OS系统下搭建JavaEE环境 <五> 之Mysql数据库的安装及配置

    这里将推荐两款 集成的Mysql环境 十分轻便好用,MAMP 和 XAMPP MAMP XAMPP 1.MAMP下载 官网: https://www.mamp.info/en/ 下载安装即可使用 MA ...

  8. JavaScript+svg绘制的一个动态时钟

    结果图: 代码如下: <!DOCTYPE html> <html> <head> <title>动态时钟</title> </head ...

  9. 使用URLConnection调用axis1.4开发的webservice

    写在前面: 调用webservice的方式有很多:1.直接在客户端使用工具生成客户端代码,将代码拷进项目中调用即可:2.使用对应的webservice框架来进行调用,比如如果我们我的服务端开发用的是a ...

  10. virtualbox 安装centos系统,设置双网卡实现虚拟机上网及主宿互访

    写在前面:前两天想玩linux,在VMware中装了centos,进入系统后发现连不上网,搜了下教程,/etc/sysconfig/network-scripts/目录下没有 ifcfg-e*的文件 ...