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

  • 相关阅读:
    洛谷 P1037 产生数
    【bzoj】 1070: [SCOI2007]修车
    【bzoj】 1066: [SCOI2007]蜥蜴 (网络流)
    开发环境搭建
    数据库设计
    sql优化实例(用左连接)
    泛型T和通配符?的区别
    Nginx配置优化
    Tomcat优化
    Nginx反向代理配置
  • 原文地址:https://www.cnblogs.com/shenlanzhizun/p/7364961.html
Copyright © 2020-2023  润新知